《IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社着答案38章》由会员分享,可在线阅读,更多相关《IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社着答案38章(41页珍藏版)》请在金锄头文库上搜索。
1、IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)答案第三章答案1-221.(1)立即寻址 没有(2)直接寻址 7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址 637DH(5)使用BX的寄存器相对寻址0D5F0H(6)基址变址寻址 8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。(1)ADD DX,BX(2) ADD AL,BXSI(3)ADD BX0B2H, CX(4) MOV AX,2A59H ADD 0524H ,AX(5) ADD AL ,0B5H 3.(1)寄存器间接寻址 MOV BX,OFFSET
2、BLOCK0AH MOV DX ,BX(2)寄存器相对寻址 MOV SI,OAHMOV DX,BLOCKSI(3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,BXSI4. 现有(DS)=2000H, (BX)=0100H, (SI)=0002H,(20100)=12H, (20101)=34H,(20102)=56H, (20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。(1)MOV AX,1200H 1200H(2) MOV AX,BX0100H(3)
3、 MOV AX,1200 4C2AH 注意,是字单元!(4)MOV AX,BX同上(5)MOV 1100BX 4C2AH (6) MOV AX,BXSI7856H (7) MOV AX,1100BXSI 65B7H5.(1) 7CD9H(2) 1200H (3) 6319H6. MOV BX,2000H LESDI,BX MOV AX, ES:DI7.转向地址OBJ的值分别为:(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位8.(1) MOV AX,0ABH 立即数寻址 无物理地址(2) MOV AX,BX 寄存器寻址 同上(3) MOV AX,100直接寻址 201
4、00H (4) MOV AX,VAL 直接寻址 20050H (5) MOV AX,BX 寄存器间接寻址 20100H(6) MOV AX,ES:BX 直接寻址21100H (7) MOV AX,BP 寄存器间接寻址 20010H(8)MOV AX,SI 同上 200A0H (9) MOV AX,BX+10 寄存器相对寻址 20110H(10)MOV AX,VALBX同上 20150H(11) MOV AX,BXSI基址变址寻址 201A0H(12) MOV AX,VALBXSI相对基相变址寻址201F0H9.(1)的指令: MOV AX, BX0CH MOV ZREO ,AX (2) 的指令
5、: MOV AX,ARRAYBXMOV ZREO,AX10. MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H LEA AX,TABLE是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX里,指令执行完后,(AX)=0032H11. 执行完指令后,(AX)=1E00H12. LEA AX,CSTRING MOV DL,AX MOV DH,AX+613. 这参考课本P51-P5314LES BX,2000MOV AX,ES:BX15运算结果 SF,ZF,CF,OF各位的值(从左至右依次往下)(1) 74D4H0 0 00 (2
6、) A5C1H 10 0 1(3)4240H 0 0 1 0 (4) 0000H 0 1 1 016接上表(1)5D140000(2)A8701 00 1(3) D870 1000(4) 34E4 0 01017(1).MOV AX,Z ;把Z送到AX SUB AX,X ;Z-X ADD AX,W ;W+(Z-X) MOV Z,AX ;结果保存在Z中(2). MOV AX,R ;R送到AX中 ADD AX,9 ;R+9 MOV BX,X ;X送到BX中 ADD BX,6 ;X+6 ADD AX,BX ;(R+9)+(X+6),结果保存在AX中 MOV BX,W ; W送到BX中 SUB BX,
7、AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和 MOV Z,BX ;最终结果送到Z中(3)MOV AX,W ;把W送到AXIMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里MOV BX,Y ;把Y送到BX 里ADD BX,6 ;Y+6IDIV BX;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里MOV Z,AX ;把商送到Z中,MOV R,DX ;把余数 送到R中(4)MOV AX,W ;把W送到AX中SUB AX,X;W-XCWD ;把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保;在DX中 MOV
8、BX,5 ;把5送到BX中IDIV BX;(W-X)/5被除数为32位,除数为16位商为16位 IMUL Y ;上一步结果再乖以Y,积为32位MOV BX,2;把2送到BX中 IMUL BX ;上一步乘法所得的积再乘以2,各为64位MOV Z,EAX ;把结果中低32位放入Z双字单元中MOV Z+4,EDX;把结果中高32位放入Z+4双字单元中 18指令本条指令执行完后AX的内容执行完后CF,SF,ZF的值MOV AX,1234H 1234H 0 0 0MOV CL,41234H 0 00 ROL AX,CL 2341H 1 0 0DEC AX 2340H1 0 0 MOV CX,4 2340
9、H10 0MUL CX 8918H 00 0INT 20H程序结束后,(AX)=8918H (DX)=0000H19指令执行完后AX的内容执行完后CF ,SF,ZF和OF的值MOV AX,0 0 0010DEC AX FFFFH0100ADD AX,7FFFH 7FFEH 0000ADD AX,2 8000H 0101NOT AX 7FFFH 0101 SUB AX,0FFFFH 8000H 1101ADD AX,8000H0000H 1011SUBAX,1FFFFH1101 AND AX,58D1H 58D1H0000 SAL AX,1 B1A2H 0101SAR AX,1 D8D1H 0100NEG AX272FH1000ROR AX,19397H 1001 20(1)MOV AX,DATAX ADD DATAY,AX(2)MOV AX,DATAX ADD DATAY,AX MOV AX,DATAX+2 ADD DATAY+2 ,AX(3)本組指令的作用是:BX -DATAX+DATAY+1(CF的值) 帶進位加法(4)MOV AX,DATAX MUL DATAY ;結果的高十六位保存在DX裏,低十六位保存