1、您正在查看 “ibm-pc汇编语言程序设计( 第二版课后习题答案“ 分类下的文章IBM-PC汇编语言程序设计(第二版 课后习题答案(清华大学出版社 (沈美明,温冬蝉著第三章答案1-222006-11-02 22:56IBM-PC汇编语言程序设计(第二版 课后习题答案(清华大学出版社 (沈美明,温冬蝉著答案1。.(1立即 寻址没有(2直接 寻址 7237H(3使用 BX的寄存器寻址没有(4使用 BX的间接寻址 637DH(5使用 BX的寄存器相对寻址 0D5F0H(6 基址 变址寻址 8E18H(7相对 基址变址 004FH2。根据下列要求,写出相应的汇编指令。(1ADD DX,BX(2 ADD
2、 AL,BXSI(3 ADD BX0B2H, CX(4 MOV AX,2A59H ADD 0524H ,AX(5 ADD AL ,0B5H3。(1寄存器 间接寻址MOV BX,OFFSET BLOCK0AHMOV DX ,BX(2寄存器相 对寻址MOV SI,OAHMOV DX,BLOCKSI(3基址 变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,BXSI没人来看,还是要写4。现有(DS=2000H,(BX=0100H,(SI=0002H,(20100=12H,(20101=34H,(20102=56H,(20103=78H,(21200=2 AH,(20201=4CH,
3、(21202=B7H,(21203=65H,试说明下列各条指令执行完后,AX寄存器的内容。(1MOV AX,1200H 1200H(2 MOV AX,BX 0100H(3 MOV AX,1200 4C2AH 注意,是字单元!(4MOV AX,BX 3412H 同上(5MOV 1100BX 4C2AH(6 MOV AX,BXSI 7856H(7 MOV AX,1100BXSI 65B7H5。(1 7CD9H (2 1200H (3 6319H6。 MOV BX,2000HLES DI ,BXMOV AX, ES:DI7。转向地址OBJ 的值分别为 :(1064DH (20691H (305E0H
4、 注意有符号数的符号位8。(1 MOV AX,0ABH 立即数 寻址无物理地址(2MOV AX,BX 寄存器寻址同上(3MOV AX,100 直接寻址20100H(4MOV AX,VAL 直接寻址20050H(5 MOV AX,BX 寄存器间接寻址20100H(6 MOV AX,ES:BX 直接寻址21100H(7 MOV AX,BP 寄存器间接寻址20010H(8MOV AX,SI 同上200A0H(9 MOV AX,BX+10 寄存器相 对寻址20110H(10MOV AX,VALBX 同上20150H(11 MOV AX,BXSI 基址 变址寻址201A0H(12 MOV AX,VALB
5、XSI 相对基相变址寻址201F0H9。(1的指令 : MOV AX, BX0CH MOV ZREO ,AX(2 的指令 : MOV AX,ARRAYBX MOV ZREO,AX10。 MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX=1234HLEA AX,TABLE 是把符号地址TABLE 的有效地址(这 里是偏移量送到指定寄存器AX里,指令执行完后,(AX=0032H11。执行完指令后,(AX=1E00H12。 LEA AX,CSTRINGMOV DL,AXMOV DH,AX+613。这个,图,很麻烦了,所以就不画了 大家可以看一下课本上P51-P
6、53,很清楚,看完了 这道韪 也会了14。LES BX,2000MOV AX,ES:BX注意:一开始我写的是: MOV AX,ES:8000H,后来看到题目里要求写两条指令,所以一条就不行了,就要画蛇添足15。运算结果 SF,ZF,CF,OF 各位的值(从左至右依次往下 (1 74D4H 0 0 0 0(2 A5C1H 1 0 0 1(3 4240 H 0 0 1 0(4 0000 H 0 1 1 016。接上表(1 5D14 0 0 0 0(2 A870 1 0 0 1(3 D870 1 0 0 0(4 34E4 0 0 1 017。(1.MOV AX,Z ;把Z 送到AXSUB AX,X
7、;Z-XADD AX,W ;W+(Z-XMOV Z,AX ;结果保存在Z中(2. MOV AX,R ;R送到AX中ADD AX,9 ;R+9MOV BX,X ;X送到BX 中ADD BX,6 ;X+6ADD AX,BX ;(R+9+(X+6,结果保存在AX中MOV BX,W ; W送到BX 中SUB BX,AX ; W-(R+9-(X+6,连续减去两个数,相当于减去 这两个数的和MOV Z,BX ;最终结果送到Z中(3MOV AX,W ;把W 送到AXIMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里MOV BX,Y ;把Y送到BX 里ADD BX,6 ;Y+6IDIV
8、BX ;(W*X/(Y+6 注意:商保存在AX里,余数保存在DX里MOV Z,AX ;把商送到Z中,MOV R,DX ;把余数送到R中(4MOV AX,W ;把W 送到AX 中SUB AX,X ;W-XCWD ;把AX 中的十六位带符号数扩展成为32位,低十六位保存在AX 中,高十六位保;在DX中MOV 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双字单元中MO
9、V Z+4,EDX ;把结果中高32位放入Z+4双字单元中18。指令本条指令执行完后AX的内容执行完后CF,SF,ZF的值MOV AX,1234H 1234H 0 0 0MOV CL,4 1234H 0 0 0ROL AX,CL 2341H 1 0 0DEC AX 2340H 1 0 0MOV CX,4 2340H 1 0 0MUL CX 8918H 0 0 0INT 20H程序结束后,(AX=8918H (DX=0000H19。指令执行完后AX的内容执行完后CF ,SF,ZF和OF 的值MOV AX,0 0 0010DEC AX FFFFH 0100ADD AX,7FFFH 7FFEH000
10、0ADD AX,2 8000H 0101NOT AX 7FFFH 0101SUB AX,0FFFFH 8000H1101ADD AX,8000H 0000H1011SUB AX,1 FFFFH 1101AND AX,58D1H 58D1H0000SAL AX,1 B1A2H 0101SAR AX,1 D8D1H 0100NEG AX 272FH 1000ROR AX,1 9397H 100120。(1MOV AX,DATAXADD DATAY,AX(2MOV AX,DATAXADD DATAY,AXMOV AX,DATAX+2ADD DATAY+2 ,AX(3本組指令的作用是:BX -DATAX+DATAY+1(CF的值 帶進位加法(4MOV AX,DATAXMUL DATAY ;結果的高十六位保存在DX裏,低十六位保存在AX裏(5MOV AX,DATAXMOV DX,DATAX+2MUL DWORD DATAY ;結果的高三十二位保存在EDX裏,低三十二位保存在EAX裏;這裏所用的DWORD為一屬性操作符,在第四章會學到(6MOV AX,DATAXDIV 17H ;結果商保存在AL中,余數在AH中(7MOV AX,DATAXCDWDIV DATAY21。NEG DXNEG AXSBB DX,0