当前位置:文档之家› IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)


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,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和
MOV Z,BX ;最终结果送到 Z 中
IBM-PC 汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章
1.解答:有 256 个 2.解答:如下图.第一个络子为 000B0H 字单元,注意,是字单元,第五个格子为 000B3H 字单元
E5 1E
3C
2A 3.解答: 30022H 字节单元内容: ABH 30024H 字节单元内容: EFH
(2) ADD AL,[BX][SI]
(3) ADD [BX][0B2H], CX
(4) MOV AX,2A59H
ADD [0524H] ,AX
(5) ADD AL ,0B5H
微信:332107782
3.(1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX]
(AX)=1234H
LEA AX,TABLE 是把符号地址 TABLE 的有效地址(这里是偏移量)送到指定寄存器 AX
里,指令执行完后,(AX)=0032H
11.执行完指令后,(AX)=1E00H
12. LEA AX,CSTRING
MOV DL,AX
MOV DH,[AX+6]
13.课本上 P51--P53
(12) MOV AX,VAL[BX][SI] 相对基相变址寻址 201F0H
9.(1)的指令: MOV AX, [BX][0CH]
MOV ZREO ,AX
(2)的指令: MOV AX,ARRAY[BX]
MOV ZREO,AX
微信:332107782
10. MOV AX,TABLE 是把符号地址 TABLE 里的内容送到 AX 里,指令执行完后,
(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位
8. (1)MOV AX,0ABH
立即数寻址 无物理地址
(2)MOV AX,BX
寄存器寻址 同上
(3)MOV AX,[100]
直接寻址
20100H
(4)MOV AX,VAL
直接寻址
20050H
(5) MOV AX,[BX]
寄存器间接寻址 20100H
(3)
MOV AX,W ;把 W 送到 AX
IMUL X ;W*X 注意:低十六位保存在 AX 里,高十六位保存在 DX 里
MOV BX,Y ;把 Y 送到 BX 里
ADD BX,6 ;Y+6
IDIV BX ;(W*X)/(Y+6) 注意:商保存在 AX 里,余数保存在 DX 里
MOV Z,AX ;把商送到 Z 中,
0)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX 寄存器
的内容。
(1)MOV AX,1200H
1200H
(2) MOV AX,BX
0100H
(3) MOV AX,[1200]
4C2AH 注意,是字单元!!
(4)MOV AX,[BX]
SHL AX ,1
(2)把 53 除以 2 的程序:
MOV AX,35H
SHR AX,1
26.這段程序完成的功能是:把 DX:AX 中的雙字數據左移 4 位(相當於乘以 16D)
27.各條指令單獨執行後,DX 的值依次為:
(1)5CH(2)17H(3)05C8H(4)72H(5)2017H(6)0CDH(7)0172H(8)05CCH
RIGHT: MOV B ,AX
MOV [B+2],DX
23.每條指令單獨執行完後的結果依次為:
(1) 9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H
24.執行指令序列後,BX 的內容為:0DAH
25.
(1)把 53D 乘以 2 的程序:
MOV AX,35H
;53D=35H
(5) MOV AX,DATAX
MOV DX,[DATAX+2]
MUL DWORD DATAY ;結果的高三十二位保存在 EDX 裏,低三十二位保存在 EAX

(6)MOV AX,DATAX
DIV 17H
;結果商保存在 AL 中,余數在 AH 中
(7) MOV AX,DATAX
CDW
DIV DATAY
N 14--O
第三章
1.(1)立即寻址 (2)直接寻址
(3)使用 BX 的寄存器寻址
没有 7237H 没有
(4)使用 BX 的间接寻址
637DH
(5)使用 BX 的寄存器相对寻址 0D5B4H
(6)基址变址寻址
8E18H
(7)相对基址变址
004FH
2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX
1011
SUB AX,1
FFFFH
1101
AND AX,58D1H
58D1H
0000
SAL AX,1
B1A2H
0101
SAR AX,1
D8D1H
0100
NEG AX
272FH
1000
ROR AX,1
9397H
1001
20.
(1)MOV AX,DATAX
ADD DATAY,AX
(2)MOV AX,DATAX
14. LES BX,[2000]
MOV AX,ES:[BX]
一条指令的话为 MOV AX,ES:[8000H]
15.运算结果
SF,ZF,CF,OF 各位的值(从左至右依次往下)
(1)74D4H
0000
(2) A5C1H
10 0 1
(3) 4240H
0010
(4) 0000H
0110
16.接上表
(1) 5D14
3412H
同上
(5)MOV 1100[BX]
4C2AH
(6) MOV AX,[BX][SI]
7856H
(7) MOV AX,1100[BX][SI]
65B7H
5.(1) 7CD9H (2) 0600H (3)098AH
6. MOV BX,2000H
LES DI ,[BX]
MOV AX, ES:DI
7.转向地址 OBJ 的值分别为:
(7) 将要从堆栈取出数据的地址 BP,SP,SS 8.可以用来指示存储器地址的寄存器有: BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应;
5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--
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.
指令
(2)寄存器相对寻址
MOV SI,OAH
MOV DX,[BLOCK][SI]
(3)基址变址寻址
MOV BX ,BLOCK
MOV SI,OAH
MOV DX,[BX][SI]
4.



DS

=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2120
STD ;和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址
REP MOVSB
(3)把 CONAME 中的第三和第四個字節裝入 AX 的程序實現:
LEA SI ,[CONAME+3]
LODSW
(4)把 AX 寄存器的內容存入從 PRLINE+5 開始的字節中的程序實現:
LEA DI ,[PRLINE+5]
ADD DATAY,AX
MOV AX,[DATAX+2]
ADD [DATAY+2] ,AX
(3)本組指令的作用是:BX <------[DATAX]+[DATAY]+[1](CF 的值) 帶進位加法~
(4)MOV AX,DATAX
微信:332107782
MUL DATAY ;結果的高十六位保存在 DX 裏,低十六位保存在 AX 裏
MOV R,DX ;把余数 送到 R 中
(4)
MOV AX,W ;把 W 送到 AX 中
微信:332107782
SUB AX,X ;W-X
CWD
;把 AX 中的十六位带符号数扩展成为 32 位,低十六位保存在 AX 中,高
十六位保存在 DX 中
MOV BX,5 ;把 5 送到 BX 中
IDIV BX ;(W-X)/5 被除数为 32 位,除数为 16 位 商为 16 位
30021H 字单元内容: AB34H 30022H 字单元内容: CDABH 4.解答: 这三个物理地址都是 3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志 OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法 AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如 AH ,AL 等 (2)循环计数 CX (3)乘法和除法 DX,AX,AH,AL (4)保存段地址 CS ,DS,ES,SS (5)表示运算结果为 O FLAGS (6)将要执行的指令地址 IP
相关主题