1、AL=D3 SI=0135H, QS:0105H =03H 3.MOVAX,6587HMOVBX,3412HNEGBXCBWIDIVBH执行结果:AX=F702H BX=CBE。4.根据数据定义给出结果DATASEGMENTD1DB1,2,3,4,5DUP(07:89D2Dhisisacomputer : 0DH,0AHCNTEQU$-D1LEABX,D2MOVAX,SIZED1CNT=26- BX=7 AX=7 -三、程序设计编写完整的汇编程序,并使用二个子程序分别实现以下功能:1)从键盘输入一个32位(双字)的16进制无符号数-存储在变量NUM 中;2) 将NUM与16位数NUM21乘,乘
2、积存储在变量 NUM中;3) 统计NUM中16进制数字“ 0”的个数,并显示输出。答:我觉得2)太难了,应该不会考,从周明德的书上看到一道差不 多的写了两大篇儿,NUM1DD?NUM2DB1AHNUM3DD?DATAENDSSTACKSEGMENTSTADB100DUPTOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACK,ES:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AX MOVAX,STACKMOVSS,AXMOVTOPMOVSI,OFFSETNUM1MOVBX,OFFSETNUM2M
3、OVDI,OFFSETNUM3;初始化MOVCX,04;设定输入数字时循环的次数CALLENT;调用输入数字子程序CALLMULT调用乘法子程序MOVSIQFFSETNUM3MOVCX,04HCALLDISPLAY调用输出子程序MOVAH,4CHINT21H输入子程序ENTNPROCNEARCLDADDSI,CX从最高位开始输入LOP:MOVAH,1INT21H;高位输入CMPAL,40H判断是09还是AFJANEXT若字母,则跳SUBAL,30H减去30H转为16进制JMPFINISHNEXT:SUBAL,31H若为字母则减去 31H转为16进制FINISH:MOVBH,AL 暂存至 BH低
4、位输入MOVBL,AL 暂存至 BLMOVSI,BX ;将 BX移至 NUM1DECSI偏移地址-1LOOPLOPRETENTNENDP统计“ 0”的个数并输出子程序DISPLAYPROCNEARMOVBL,0存在BL中AGAIN:MOVAX,SI;取 NUM放在 AX中TESTAL,0FFH低八位判0JNZNEXT1INCBLNEXT1:TESTAH,OFF高八位判 0JNZNEXT2NEXT2:LOOPAGAINADDBL,30H将BL转换为ASCI (小于等于8)MOVDL,ALMOVAH,02H屏幕显示DISPLAYENDPCODEENDSENDSTART四、可编程接口芯片的应用技术8
5、253的CLK0输入脉冲F=1MH,255的 A 口连接OUT1和按键,8255 的 B 口接 8 个 LED要求:1.依据接线图写出8255的A 口、B 口、C 口及控制寄存器的端 口地址,8253的计数器CNT0 CNT1 CNT2及控制寄存器的端口地 址。2.当PAO的按键按下,使B 口的“ LED0点亮1秒后熄灭,下 一次按键使“ LED0点亮0.5秒后熄灭,按以下顺序反复循环:“ LED0,“ LED1 , “ LED7,LED0,LED1,”,如键盘有输入就结束循环并退出。试编写完整的汇编程序。1.8255 : 034CH034FH 8253: 0344H0347H2.我没看懂题,
6、就都按亮1秒写了 =mesdbenteranykeyexittodo$Ah)h,STADW100DUPASSUMECS:CODE,DS:DATA,SS:MOVAX,STACKMOVDX,OFFSETMESMOVAH,09HMOVDX,O34FHMOVAL,90HOUTDX,ALLOOPA:MOVDX,034CHINAL,DXNOTAX13年5月重修试卷一、 填空题1.若X=35H,丫=F7H,则X+Y=。看不清原反补,反正会=2.8086/8088汇编语言中,操作数具有,和三种属f 没找到什么属性,倒是分立即数、寄存器、存储器三种类型 ,3.8086/8088的CPU有 6个状态标识位和3个控
7、制标志位。4.要把AL的D2D5位置1,其他位保持不变,应使用的指令是: ORAL,3CH5.将不带符号数进行比较是,应根据标志位 ZF和CF来判断比较 _结果。6.若某外部中断的类型码为仆H则该中断向量(在中断向量表中)的物理地址是0007CH00080H7.一片中断控制器8259A可以管理8级外部中断,两片8259A通过主从方式可以管理15级处部中断。(这题蒙的,)8.某RAM芯片的存储容量是16KX 8bit,则该芯片有8根数据线和 14根地址线。二、 计算题1已知各寄存器内容,确定下列指令中存储器操作数的物理地址。DS=4000HSS=6000HBX=1000HBP=2000HDI=3
8、000H1) MOVAX,1234H41234H 2)MOVAX,BX41000H 3)MOVAX,5678HBP67678H 4)MOVAX,1000HBXDI45000H5)MOVAX,BPDI65000H2.MOVAX,6789HMOVBX,ABCDHNOTBXDIVBL执行结果:AX=6789H BX=5432H(我算商大于FF,产生中断?)3.MOVAX,1234HMOVBX,5678HSUBAX,BXHLT执行后各标志位状态分别为:CF=1 SF=J ZF=0,OF=0 PF=Q4.根据数据定义给出结果:D1DW230BH,1,2,3,4,4DUP(0)D2DBBCD0ABHCNT
9、EQU$-D1CNT=15 LEABX,D2BX=10 MOVAX,TYPED1AX=2 -1 B U 正1负的 个 数0 分Nu字 节 的 用 原 码 表 示将BFtAsegment中的JFDBQX1OO正PLUSDB1OODUP数NUM中。M1NUSDB1OODUP分NUmpdb?PUUMMDB?SM的tacksegment 数,要求:STADB1OODUP(?中OPEQULENGTHSTA计DATAMOVES,AXMOVSTOPMOVSI,OFFSETBUF1MOVDI,OFFSETPLUSMOVBX,OFFSETMINUSMOVDX,00;记录正负数个数清零MOVCX,64;设置循环次
10、数MOVAL,SI;取一个数TESTAL,08H判断正负JNZNEXT负数跳MOVDI,AL;正数挪到 PLUSINCDIINCDH正数个数+1MOVBX,AL 负数挪到 MINUSINCBXINCDL;负数个数+1MOVAX,OFFSETNUMPMOVAX,DH放正数个数MOVAX,OFFSETNUMMMOVAX,DL;放负数个数2用1子 2程答:中 NUM的累加和存放在AX中。DAtasegment现D上 数UM1DBX?,X10缩CD数,试编写完整的汇编程序,并两并UM2DB5DUP:存放ATAENDSNUM中;STACK;ES:MOVDI,OFFSETNUM2MOVCX,05;CALL
11、TRN;调用转换子程序MOVSI,OFFSETNUM2CALLPLSS调用加法子程序TRNSPROCNEA转换子程序PUSHCX保护 CX取一个非压缩BCD马MOVAH,SI再取一个MOVCL,04H设置左移次数SHLAH,CL第二个BCD马左移四位ORAL,AH第二个与第一个相或存至U NUM2POPCX 恢复 CXTRNSENDPPLSSPROCNEA相加子程序MOVAX,00; AX 清零CLC CF清零MOVBL,SI;取一个压缩 BCD码MOVBH,BLANDBL,0FH第一个取低四位ADCAL,BL 加到 ALAAA非压缩BCD码加法调整ANDBH,0F0H第二个取高四位MOVCL,O4HSHRBH,CL右移四位ADCAL,BH 加到 ALAAAPOPCXPLSSPROCENDS四、可编程接口芯片应用技术8253 的 CLK0输入脉冲 F=500KHz OUT1接 8255 的 A 口,8255的B 口接6个LED1.依据接线图写出8255的A 口,B 口,C 口及控制寄存器的端 口地址,8253的计数器CNTO、CNT1 CNT2及控制寄存器的端口地 址。2.使B 口的LED按以下顺序循环点亮:“ LED(”,LEDf,,, “ LED5,LED0,LED1,”,每个LED点亮1秒后切换,反复循环,如键盘有按键就停止。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1