《汇编语言程序设计》1~10章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1
1.2
1.3
1.4
1.5 (字长 n=8)
1.6
1.7
(1) (2) (3) (4) (5)
1.8 设补码长度为字节(即为8位)
1.9
(1) 21-(-18)= 15H-0EEH= 27H (2) 71- 36 = 47H- 24H= 23H (3) -5+ 120 =0FBH+ 78H= 73H (4) -10- 20 =0F6H- 14H=0E2H (5) -85-(-40)=0ABH-0D8H=0D3H 1.10
57H,69H,6EH,64H,6FH,77H,73H,20H,39H,35H, 56H,69H,73H,75H,61H,6CH,20H,62H,61H,73H,69H,63H
P26
第二章习题·答案
2.6 见P19
堆栈:内存中以”先入后出”为原则存取、最大空间为64KB 的存储区域称之为堆栈
栈底:栈区最高地址单元的前一个单元为栈底
2.7
2.8
4017H:000AH=4017AH 4015H:002AH=4017AH 4010H:007AH=4017AH 说明了同一个物理地址可以用多个逻辑地址表示。
3.1(1) 寄存器寻址
(2) 寄存器间接寻址, 物理地址=30700H
(3) 变址寻址/寄存器相对寻址,物理地址=31804H
(4) 基址寻址/寄存器相对寻址,物理地址=41700H
(5) 基址变址寻址, 物理地址=30800H
(6) 相对基址变址寻址, 物理地址=42504H
3.2(1) 错:源不能是基址基址寻址。
(2) 错:源和目不能同时为内存单元。
(3) 错:直接给出的移位位数不能是3。
(4) 错:取反指令只能有一个操作数。
(5) 错:不能将立即数直接送入段寄存器。
(6) 错:目不能是段寄存器CS。
(7) 错:第一个操作数不能是立即数。
(8) 当VALUE1为字变量时,对;否则为错:源和目的类型(长度)不一致。
(9) 错:源和目不能同时为段寄存器。
(10)对。
(11)错:出栈指令的目不能是立即数。
(12)错:输入指令的目必须是累加器,源必须是小于0FFH的端口地址
或者是存放端口地址DX寄存器。
(13)错:源不能是立即数。
(14)错:寄存器CX不能用于寄存器间接寻址。
3.3 MOV AX,84A0H ;所有的标志位保持不变
ADD AX,9460H ;AF=0,CF=1,OF=1,SF=0,ZF=0,PF=1。
3.4(1) SUB AX,AX;或用XOR AX,AX;或用 MOV AX,0;或用 AND AX,0
(2) MOV CL,4
ROR BL,CL ;也可以用 ROL BL,CL
(3) ①若都为字节变量,程序如下:②若都为字变量,程序如下:
MOV AL,N1 MOV AX,N1
CBW CWD
IDIV N2 IDIV N2
MOV M1,AL MOV M1,AX
MOV M2,AH MOV M2,DX
(4) AND BX,0F7AFH;0F7AFH =1111 0111 1010 1111B
(5) XOR AX,4020H ; 4020H =0100 0000 0010 0000B
(6) TEST DX,0201H ; 0201H =0000 0010 0000 0001B
(7) OR CX,1
3.5(1) MOV BX,OFFSET BLOCK+(6-1)*2
MOV AX,[BX]
(2) MOV BX,OFFSET BLOCK ;也可以用LEA BX,BLOCK
MOV AX,10[BX]
(3) LEA BX,BLOCK
MOV SI,0
MOV AX,10[BX+SI]
(4)MOV AX,BLOCK+10
3.6(1) (BX)= 009AH (3) (BX)= 8071H (4) (BX)= 10F7H
(2) (BX)= 0061H (5) (BX)=0FF1CH
3.7(AX)=8D00H,(CX)=0004H
3.8(1) JCXZ L2
(2) L1: JCXZ L2
DEC CX
CMPSB
JZ L1
L2:
3.9 MOV CL,3
MOV BX,4DABH ;(BX)= 4DABH
ROL BX,1 ;(BX)= 9B56H
ROR BX,CL ;(BX)=0D36AH
3.10 MOV AX,BCD1
ADD AL,BYTE PTR BCD2
DAA
MOV BYTE PTR BCD3,AL
MOV AL,AH
ADC AL,BYTE PTR BCD2+2
DAA
MOV BYTE PTR BCD3+2,AL
程序段执行完后,BCD3
单元的值如左示:
3.11 CLD
LEA SI,STRING1
LEA DI,DESTIN
MOV CX,20 ;也可以这样 MOV CX,20/2
REP MOVSB ; REP MOVSW 3.12MOV AX,X
CMP AX,50
JG N_HIGH
SUB AX,Y
JO OVERFLOW
;求绝对值
JNS L ;正数转
NEG AX ;负数的补码求补=绝对值L: MOV RESULT,AX
3.13设变量单元为字长
(1) MOV AX,W
SUB AX,Z
SUB AX,X
MOV Z,AX
(2) MOV AX,W
ADD AX,X
ADD AX,6
SUB AX,R
SUB AX,9
MOV Z,AX
(3) MOV AX,W
MUL AX,X
ADD Y,6