[电子电路]微型计算机原理与接口技术周荷琴_吴秀清第三版课后习题答案内容摘要:

=1864H,求下列每条指令执行后的结果是什么。 标志位CF 等于什么。 (1)AND AH,CL (2)OR BL,30H (3)NOT AXSPSP10500H……60H48HSP……10500H 10500H……48H60H12H87HSP48H60H12H87H10500HSP(4)XOR CX,0FFF0H (5)TEST DH,0FH (6)CMP CX,00H(7)SHR DX,CL (8)SAR AL,1 (9)SHL BH,CL(10)SAL AX,1 (11)RCL BX,1 (12)ROR DX,CL答:(1)AX=0408H,CF=0 (2)BX=0F36H,CF=0(3)AX=0DAF7H,CF 不变 (4)CX=0FFF4H,CF=0(5)DX=01864H,CF=0 (6)CX=0004H,CF=0(7)DX=0186H,CF=0 (8)AX=2504H,CF=0(9)BX=0F036H,CF=0 (10)AX=4A10H,CF=0(11)BX=1E6C/1E6DH,CF=0 (12)DX=4186H,CF=011. 假设数据段定义如下:DATA SEGMENTSTRING DB ‘The Personal Computer amp。 TV’DATA ENDS试用字符串操作等指令编程完成以下功能:(1)把该字符串传送到附加段中偏移量为GET_CHAR 开始的内存单元中。 (2)比较该字符串是否与’The Computer’相同,若相同则将AL 寄存器的内容置1,否则置0。 并要求将比较次数送到BL 寄存器中。 (3)检查该字符串是否有’amp。 ’,若有则用空格字符将其替换。 (4)把字符串大写字母传送到附加段中以CAPS 开始的单元中,其余字符传到以CHART开始的单元中。 然后将数据段中存储上述字符串的单元清0。 答:(1) CLDLEA SI,STRINGLEA DI,GET_CHARMOV CX,26REP MOVSB(2)补充在附加段定义STRING1 DB ‘The puter’MOV AL,1CLDLEA SI,STRINGLEA DI,STRING1MOV CX,12REPZ CMPSBJZ SKIPMOV AL,0SKIP: MOV BX,12SUB BX,CX(3) MOV AX, DATAMOV ES, AXCLDMOV AL,39。 amp。 39。 LEA DI,STRINGMOV CX,26NEXT: REPNE SCASBJZ FINDJMP EXITFIND: MOV BYTE PTR [DI1], 39。 39。 JCXZ EXITJMP NEXTEXIT:(4) LEA SI,STRINGLEA DI,CAPSLEA BX,CHARTMOV CX,26NEXT: MOV AL, [SI]CMP AL,’A’JB OTHERCMP AL,’Z’JA OTHERMOV ES:[DI],ALINC DIJMP SKIPOTHER: MOV ES:[BX],ALINC BXSKIP: MOV BYTE PTR[SI],0INC SILOOP NEXT12. 编程将AX 寄存器中的内容以相反的顺序传送到DX 寄存器中,并要求AX 中的内容不被破坏,然后统计DX 寄存器中‘1’的个数是多少。 答:: MOV BL,0PUSH AXMOV DX,0MOV CX,16NEXT: SHL AX,1JNC SKIPINC BLSKIP: RCR DX,1LOOP NEXTSTOP: POP AX13. 设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N 标号的地址为1200:0278H,PROG_F 标号的地址为3400H:0ABCH。 说明下列每条指令执行完后,程序将分别转移到何处执行。 (1)JMP PROG_N(2)JMP BX(3)JMP [BX](4)JMP FAR PROG_F(5)JMP DWORD PTR [BX]如将上述指令中的操作码JMP 改成CALL,则每条指令执行完后,程序转向何处执行。 并请画图说明堆栈中的内容和堆栈指针如何变化。 答:(1)1200H:0278H(2)1200H:0300H(3)1200H:4800H(4)3400H:0ABCH(5)00FFH:4800H将操作码JMP 改成CALL 后:(1)1200H:0278H指令长度为3,则IP=0100H+3=0103H,入栈……03H01H5000H:0000H5000H:03FEH5000H:0400H􀃅SP(2)1200H:0300H指令长度为2,则IP=0100H+2=0102H,入栈……02H01H(3)1200H:4800H指令长度为2,则IP=0100H+2=0102H,入栈……02H01H(4)3400H:0ABCH指令长度为5,则IP=0100H+5=0105H,入栈……05H01H00H12H(5)00FFH:4800H指令长度为2,则IP=0100H+2=0102H,入栈5000H:0000H5000H:03FEH5000H:0400H􀃅SP5000H:0000H5000H:03FEH5000H:0400H􀃅SP5000H:0000H5000H:03FCH 􀃅SP5000H:03FEH5000H:0400H……02H01H00H12H14. 在下列程序段括号中分别填入以下指令(1)LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX 的内容分别是什么。 START: MOV AX,01HMOV BX,02HMOV DX,03HMOV CX,04HNEXT: INC AXADD BX,AXSHR DX,1( )答:(1) AX=05H BX=10H CX=0 DX=0(2) AX=02H BX=04H CX=03H DX=01H(3) AX=03H BX=07H CX=02H DX=015. 某班有7 个同学英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作:(1)给每人加 5 分,结果存到 NEW 数组中(2)把总分存到SUM 单元中答: DATA SEGMENTARRAY DB。 ,。 ,。 ,。 ,。 ,。 ,。 NEW DB 7 DUP(?)SUM DW 0DATA ENDSMOV AX,DATAMOV DS, AX(1) LEA SI,ARRAYLEA DI,NEWMOV CX,7NEXT: MOV AL,[SI]ADD AL, 5MOV [DI], ALINC SIINC DILOOP NEXT(2) LEA SI,ARRAYCLC􀃅SP5000H:0000H5000H:03FCH5000H:03FEH5000H:0400HMOV CX, 7NEXT1:MOV AL,[SI]MOV AH, 0ADC SUM, AXINC SILOOP NEXT116. 中断向量表的作用是什么。 它放在内存的什么区域内。 中断向量表中的什么地址用于类型3 的中断。 答:中断向量表用来存放中断服务程序的入口地址。 8086 的256 类中断的入口地址要占用1K 字节,位于内存00000H~003FFH 的区域内。 中断向量表中0000CH~0000FH 用于类型3 的中断。 17. 设类型2 的中断服务程序的起始地址为0485:0016H,它在中断向量表中如何存放。 答:物理地址 内容00008H 16H00009H 00H0000AH 85H0000BH 04H18. 若中断向量表中地址为0040H 中存放240BH,0042H 单元里存放的是D169H,试问:(1)这些单元对应的中断类型是什么。 (2)该中断服务程序的起始地址是什么。 答:(1)10H(2)D169H:240BH19. 简要说明8086 响应类型0~4 中断的条件是什么。 答:类型0:除法错中断执行除法指令时,若除数为0 或所得商超过寄存器能容纳的范围,则自动产生类型0中断。 类型1:单步中断若CPU 的单步标志TF=1,则每执行完一条指令后,自动产生类型1 中断。 类型2:不可屏蔽中断NMI当8086 的NMI 引脚上接收到由低变高的电平变化时,将自动产生类型2 中断。 类型3:断点中断若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3 中断。 类型4:溢出中断若溢出标志OF=1,则可由溢出中断指令INTO 产生类型4 中断。 第四章1. 下列变量各占多少字节。 A1 DW 23H,5876HA2 DB 3 DUP(。 ),0AH,0DH, ‘$’A3 DD 5 DUP(1234H, 567890H)A4 DB 4 DUP(3 DUP(1, 2,’ABC’))答:A1 占4 个字节A2 占6 个字节A3 占40 个字节A4 占60 个字节2. 下列指令完成什么功能。 MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFH答:(1)将0066H 传送给AX(2)将0FFH 传送给AL(3)将0FFFFH 传送给AX(4)AND AL,02H(5)OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5,’123’ABUF DB 0L EQU ABUFBUF求L 的值为多少。 答:L=64. 假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $PAR求PLENTH 的值为多少。 表示什么意义。 答:PAR 的偏移地址为0,PLENTH 当前偏移地址$=2+16+4=22, $PAR=22,故PLENTH的值为22。 若在PLENTH 所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH 所在行的当前偏移地址。 故PLENTH 表示从当前行到PAR 之间定义的变量所占的字节个数。 5. 对于下面的数据定义,各条MOV 指令执行后,有关寄存器的内容是什么。 DA1 DB ?DA2 DW 10 DUP(?)DA3 DB ‘ABCD’MOV AX, TYPE DA1MOV BX, SIZE DA2MOV CX, LENGTH DA3答:AX=1,BX=20,CX=16. 下段程序完成后,AH 等于什么。 IN AL, 5FHTEST AL, 80HJZ L1MOV AH, 0JMP STOPL1: MOV AH, 0FFHSTOP: HLT答:讨论从端口5FH 输入的数据最高位的情况。 若最高位为1,则AH=0;若最高位为0,则AH=0FFH。 7. 编程序完成下列功能:(1)利用中断调用产生5 秒延时。 (2)利用中断调用,在屏幕上显示1~9 之间随机数。 答:(1)可以利用中断类型1CH 来处理,因为在系统时钟的中断处理程序中,时钟中断一次要调用一次INT 1CH,即每隔55ms,产生一次1CH 中断,要产生5 秒延时,只要中断5s/55ms=91 次即可。 又因1CH 中断处理程序中只有一条IRET 指令,故可将用户的程序代替原有的INT 1CH 程序。 DATA SEGMENTCOUNT DW 91。 计数器MESS DB ‘5 s delayed!’,0AH,0DH,’$’DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,ES:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AL,1CH。 得到原中断向量MOV AH,35HINT 21HPUSH ES。 存储原中断向量PUSH BXPUSH DSMOV DX,OFFSET DELAY ;DELAY 的偏移地址和段地址MOV AX,SEG DELAYMOV DS,AXMOV AL,1CH ;设置中断向量MOV AH,25HINT 21HPOP DSIN AL,21H ;设置中断屏蔽位AND AL,0FEHOUT 21H,ALSTIMOV DI,2000H ;主程序延迟,在执行此段程序期间A1: MOV SI,3000H ;产生中断A2: DEC SIJNZ A2DEC DIJNZ A1POP DX ;取原中断向量POP DSMOV AL,1CHMOV AH,25HINT 21HRETMAIN ENDPDELAY PROC NEARPUSH DSPUSH AXPUSH CXPUSH DXMOV AX,DAT。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。