微机课后作业第3章作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章习题与思考题
1、分别指出下列指令中的源操作数和目的操作数的寻址方式。
①MOV AX,[SI] ;AX—寄存器寻址,[SI]—寄存器间接寻址
②MOV DL,100 ;DL—寄存器寻址,100—立即寻址
③MOV [BX],AL ;[BX]—寄存器间接寻址,AL—寄存器寻址
④MOV [BX][SI],CX;[BX][SI]—基址加变址寻址,CX—寄存器寻址
⑤ADD DX,[06H][SI];DX—寄存器寻址,[06H][SI]—基址/变址寻址
⑥PUSH AX ;AX—寄存器寻址
⑦AND DS:[BP],AX ;DS:[BP]—寄存器间接寻址,AX—寄存器寻址
⑧OR AX,DX ;AX—寄存器寻址,DX—寄存器寻址
2、设寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=0A0H,(BX)
=100H,(BP)=10H,数据段中变量V AL的偏移地址值为50H,试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?
①MOV AX,[100H]
[100H]—直接寻址,PA=20000H+100H=20100H
②MOV CX,ES:[BX]
ES:[BX]—寄存器间接寻址,PA=32000H+100H=32100H
③MOV DX,[BX][SI]
[BX][SI]—基址加变址寻址,PA=20000H+100H+0A0H=201A0H
④MOV AX,V AL[SI]
V AL[SI]—基址/变址寻址,PA=20000H+50H+0A0H=200F0H
⑤MOV BX,1234[BX]
1234[BX] —基址/变址寻址,PA=20000H+04D2H(1234)+100H=205D2H
⑥MOV AX,[BP]
[BP]—寄存器间接寻址,PA=15000H+10H=15010H
4、选择题
①带符号数–86在微机中所表示的二进制数值是( A )。
A.B B.01100101B C.B D.B
②执行“MOV DL,2AH”和“SHR DL,1”两条指令后,DL寄存器与CF标志分别为(D)。
A. DL= CF=1
B. DL=00110101 CF=0
C. DL=00110100 CF=1
D. DL=00010101 CF=0
③可将AX寄存器中D0,D5,D8和D11位求反,其余位不变的指令是(C)。
A. AND AX,921H
B. OR AX,910H
C. XOR AX,0921H C. XOR AX,0110H
④某存储单元的物理地址为3B4FEH,其段地址和偏移地址可分别选为(B)。
A. 3B4FH和104EH
B. 3B40H和00FEH
C. 2A00H和114FEH
D. 3B4FEH和0
⑤两个8位二进制数00110101及做“异或”操作后,寄存器FR的下面3个状态标志分别是(C)。
A. PF=1 SF=0 ZF=0
B. PF=0 SF=1 ZF=1
C. PF=0 SF=1 ZF=0
D. PF=1 SF=1 ZF=1
⑥当执行存储器写指令时,如“MOV [SI],AX”,则CPU的外部引脚状态是(D)。
A. /WR=1 /RD=1 M//IO=0
B. /WR=0 /RD=1 M//IO=0
C. /WR=1 /RD=0 M//IO=1
D. /WR=0 /RD=1 M//IO=1
5、已知,DS=2000H,BX=100H,SI=02H,从物理地址20100H单元开始,依
此存放数据12H、34H、56H、78H;而从物理地址21200H单元开始,依此存放数据2AH、4CH、8BH、98H,试说明下列各条指令单独执行后AX寄存器的内容。
①MOV AX,3600H ;AX=3600H
②MOV AX,[1200H] ;AX=4C2AH
③MOV AX,BX ;AX=0100H
④MOV AX,[BX] ;AX=3412H
⑤MOV AX,1100H[BX] ;AX=4C2AH
⑥MOV AX,[BX][SI] ;AX=7856H
6、设堆栈指针SP的初值为2400H,AX=4000H,BX=3600H。问:
①执行指令“PUSH AX”后,SP=?;SP=2400H–02H=23FEH
②再执行指令“PUSH BX”和“POP AX”后,SP=?(AX)=?(BX)=?
试画出堆栈变化示意图。
SP=23FEH,AX=3600H,BX=3600H
3.指令理解题
判断下列指令有无错误,若有,则改正。
(1)P USH CL
错,此处的CL为8位,而堆栈操作必须按字(16位)进行。
可改成PUSH AX 。
(2)A DC AX,0ABH
对。
(3)O UT 3EBH,AX
错,此处的3EBH>FFH,而OUT n,AX指令中的端口号(端口地址)n 取值范围只能是00H~FFH。
可采用DX间址:
MOV DX,3EBH
OUT DX,AX
(4)M UL AL,CL
错,指令格式非法。正确的方法应先将被乘数通过MOV指令存放在AL 中,然后再用如下指令:
MUL CL ;AX←AL⨯CL