微机第三章答案
- 格式:pdf
- 大小:95.79 KB
- 文档页数:5
3-1.指出下列指令的寻址方式:
目的操作数 源操作数
(1)MOV SI,100 寄存器寻址 立即数寻址
(2)LDS DI,[2130H] 寄存器寻址 存储器直接寻址
(3)AND DI,[BX+SI+20H] 寄存器寻址 存储器相对的基址变址寻址
(4)MOV [BP],CX 存储器寄存器间接寻址 寄存器寻址
(5)MOV CX,DISP[BX] 寄存器寻址 存储器寄存器相对寻址
(6)PUSH DS 固定寻址 寄存器寻址
3-2.判别下列指令是否有错,并说明理由;有错地加以改正
(1)MOV [DI],[SI] 错, MOV指令中src和dst不能同时为存贮器寻址, 应借助寄存器
为桥梁
(2)MOV CS,AX 错, 不能用CS和IP做dst, CS和IP的内容只能了解不能改变
(3)MUL -25 错, 乘数可以是R/M中的无符号数, 但不能为立即数
(4)MOV 128,CL 错,立即数不能做dst
(5)MOV DS, CS 错,不允许在段R之间直接传送信息
(6)ADD AX,[SI][DI] 错,基址变址寻址中BX和BP为基址R,SI和DI为变址R
(7)PUSH FLAG 错,标志寄存器F的内容进出栈指令为 PUSHF POPF
(8)MOV AX,[AX] 错,AX不能作为间址R
(9)MOV AX,BYTE PTR[SI] 错,MOV指令操作数的类型要匹配
(10)MOV CL,AX 错,MOV指令操作数的类型要匹配
(11)OUT CX,AL 错,使用短格式I/O指令时,先将端口地址赋给DX,而且只能赋给DX
(12)MOV AX,DISP[BX][BP] 错,基址变址寻址中BX和BP为基址R,SI和DI为变址R
(13)IN AL,DX 对
(14)LEA BX,4[BX] 对
(15)SAR AX,5 错,移位一次的在指令中直接给出,移位n次的。需预先将n送入CL中
3-3.
MOV DX ,X+2
MOV AX ,X
ADD AX ,X
ADC DX ,X+2
CMP DX ,Y+2
([有符号数]JG/JA[无符号数]) L2
([有符号数]JL/JB[无符号数]) L1
CMP AX , Y
([有符号数]JG/JA[无符号数]) L2
L1: MOV AX , 1
JMP EXIT
L2: MOV AX , 2
EXIT:HLT
3-4.
3-5.
完成的数学计算公式: X+Y-Z W (X、Y、Z、W都是双字变量)
3-6.
MAX: MOV BX, 2000H
MOV AL, [BX]
MOV CX, 0063H/99
L1: INC BX
CMP AL, [BX]
JGE L2
MOV AL, [BX]
L2: DEC CX
JNZ L1
MOV [2100H], AL
3-7.
将XXXXH中的内容与BX中的奇数列逐个进行比较,直到BX中的奇数大于XXXXH中的
数值时程序终止
3-8.
(1)MOV AX,BX
(2)ADD AL,DH
(3)ADC BX,CX
(4)SUB AX,2710H
(5)DEC BX 课本87页
(6)NEG CX 求变补即0-CX或CX+1
(7)INC BL
(8)MUL BX课本89页 若运算结果AH、DX不为零,则CF、OF同时置1,不影响其它标志位
(9)DIV CL 课本91页 CF ZF OF
①(AX)=(BX)=06FAH 1 不影响 不影响
②(AL)=66H 0 0 0
③(BX)=0831H 0 0 0
④(AX)=1B25H 0 0 0
⑤(BX)=06F9H 1 不影响 0 0
⑥(CX)=0FEBDH 1 0 0
⑦(BL)=0FBH 1不影响 0 0
⑧(AX)=0E5C2H,
(DX)=01CDH 1 无意义 1
⑨(AL)=商=0FCH
(AH)=余数=41H 无意义 无意义 无意义
3-9.
(1)MOV AX ,X1 (2)MOV AX , X1
ADD AX ,X2 ADD AX , X2
MOV RESULT, AX MOV RESULT , AX
(3)MOV AX , X1 MOV AX , X1+2
SUB AX , X2 ADC AX , X2+2
MOV RESULT, AX MOV RESULT+2,AX
(4)MOV AX ,X1
XCHG AX ,X2
XCHG AX ,X1
(5)MOV CX ,4
CLC
LEA SI ,X1
LEA DI ,X2
LEA BX ,RESULT
LA: MOV AL ,[SI]
ADC AL ,[DI]
DAA
MOV [BX] ,AL
INC SI
INC DI
INC BX
LOOP LA
?(6)MOV AX, 0
MOV CX, 6
CLC
L2: LEA SI, X1
MOV DWORD PTR [RESULT], 0
LEA DI, RESULT
MOV BX, 2
L1: MOV AL,[DI]
ADC AL,[SI]
DAA
MOV [DI],AL
INC SI
INC DI
DEC BX
JNZ L1
MOV AL, 0
ADC AL, O
DAA
MOV [DI], AL
LOOP L2
3-10.
X1 DB 2BH
X2 DB 0F5H
RESULT DB ?, ?
MOV AL, X1
ADD/SUB/ADD/MUL/IDIV AL, X2
MOV RESULT, AL
(1) AF=1,CF=1,SF=ZF=OF=PF=0
(2) CF=1,PF=1,ZF=SF=AF=OF=0
(3) AF=CF=1,SF=ZF=OF=PF=0
(4) CF=OF=1 其它标志位无意义 P89页
(5) 所有标志位无意义 P92页
3-11.
LEA SI ,ARRAY
LEA DI ,NEW
MOV CX ,7
MOV WORD PTR SUM ,0
LA: MOV AL ,[SI]
ADD SUM ,AL
ADC SUM+1 ,0
ADD AL ,5
MOV [DI],AL
INC SI
INC DI
LOOP LA
MOV AX ,SUM
MOV CL ,7
DIV CL
MOV AVERAGE ,AL
3-12.
(1)AH=04H CF=0 (2)BL=36H CF=0
(3)AX=DAF7H CF不受影响 (4)CX=0FFF4H CF=0
(5)寄存器值不变 CF=0 (6)寄存器值不变 CF=0
(7)DX=0186H CF=0 (8)AL=04H CF=0
(9)BH=0F0H CF=0 (10)AX=4A10H CF=0
(11)BX=1E6CH CF=0 (12)DX=4186H CF=0
3-13.
(2) DATA SEGMENT
STRING DB‘THE ……&TV’
COUNT1 EQU $-STRING
COUNT DW COUNT1
T_STRING DB ‘THE COMPUTER’
COUNT_T DW $-T_STRING
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
MOV AX ,DATA
MOV ES ,AX
MOV DS ,AX
LEA SI ,STRING
LEA DI ,T_STRING
MOV CX ,COUNT
CMP CX ,COUNT_T
JNZ DONE
REPE CMPSB
JNZ LA
MOV AL ,1
JMP DONE
LA: MOV AL ,0
DONE:MOV BX ,COUNT
SUB BX ,CX
┇
CODE ENDS
3-14.
MOV BL ,0 ;DX中的1的个数存放在BL中
MOV CX ,16 ;共有16位数字
LA: ROL AX ,1
JNC LA1 ;CF为零时跳转
INC BL
LA1: RCR DX ,1 ;将CF中的值移入DX中
LOOP LA
3-15.
(1)逻辑地址 1200H:0278H PA=12278H
(2)逻辑地址 1200H:0300H PA=12300H
(3)逻辑地址 1200H:4800H PA=16800H
(4)逻辑地址 3400H:0ABCH PA=34ABCH
(5)逻辑地址 00FFH:4800H PA=058F0H
3-16.
START: MOV AX,01H
MOV BX,02H
MOV DX,03H
MOV CX,04H
NEXT: INC AX
ADD BX,AX
SHR DX,1
( )
(1)AX=5H BX=10H CX=0H DX=0
(2)AX=2H BX=4H CX=3H DX=1H
(3)AX=3H BX=7H CX=2H DX=0
3-17.
中断向量表是存放中断向量的,它位于内存最低端PA=00000H-003FFH的1KB空间,中断向
量表中0000CH-0000FH用于存放类型3的中断。
3-18. 16H 00008H
00H 00009H
85H 0000AH
04H 0000BH
3-19.
(1) 这些单元对应的中断类型是16/10H
(2) 该中断服务程序的起始地址是D169:240B PA=D3A9B