微机原理第3章习题(答案)

上传人:小** 文档编号:91384033 上传时间:2019-06-27 格式:DOC 页数:5 大小:41.50KB
返回 下载 相关 举报
微机原理第3章习题(答案)_第1页
第1页 / 共5页
微机原理第3章习题(答案)_第2页
第2页 / 共5页
微机原理第3章习题(答案)_第3页
第3页 / 共5页
微机原理第3章习题(答案)_第4页
第4页 / 共5页
微机原理第3章习题(答案)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《微机原理第3章习题(答案)》由会员分享,可在线阅读,更多相关《微机原理第3章习题(答案)(5页珍藏版)》请在金锄头文库上搜索。

1、微机原理第3章习题(答案)1. 下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOV DS,1000H(2)MOV 100,23H(3)ADD AX,BXBP6(4)PUSH DL(5)IN AX,3FH(6)OUT 3FFH,AL(7)LES SS,SI(8)POP AX(9)IMUL 4CH(10)SHL BX,5(11)INT 300(12)XCHG DX,0FFFH答:(1)错误。不允许直接向段寄存器送立即数,可改为:MOV AX, 1000HMOVDS, AX(2)错误。该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上 B

2、YTE PTR 或 WORD PTR 说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOV BYTE PTR 100,23H(3)错误。不能同时使用两个基址寄存器 BX、BP 进行间接寻址,可改为:ADD AX, BX DI 6(4)错误。堆栈操作应以字为单位进行,而 DL 是一个字节。可改为:PUSH DX(5)错误。在输入/输出指令中,8 位端口地址应直接写在操作数处。可改为:IN AX,3FH(6)错误。端口地址3FFH 已超出 8 位二进制表示范围,16 位端口地址应用DX。可改为:MOV DX, 3FFH OUT DX, AL(7)错误。LES 指令的目操作数应该是通用

3、寄存器,不能是段寄存器。可改为:LES BX,SI(8)错误。AX 不能用于间接寻址,间接寻址只能用 BX、BP、SI、DI 四个寄存器之一。可改为:POP BX(9)错误。立即数不能做乘法指令的操作数,可改为:MOV BL,4CH IMUL BL(10)错误。当逻辑移位的次数大于1时,应该用CL指示次数。可改为MOV CL,5 SHL BX,CL(11)错误。操作数 300 255,已超出有效的中断类型码范围。(12)错误。XCHG 指令不允许立即数做它的操作数。可改为:MOV CX,0FFFH XCHG DX,CX2. 请指出以下各指令的源、目的操作数所使用的寻址方式。(1) MOV SI

4、,2100H(2) SBB DISPBX,7 (3) AND DI,AX(4) OR AX,609EH(5) MOV BXDI30H,CX(6) PUSH ES:BP(7) CALL DIDISP(8) JNZ Short_ label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:基址寻址(3)源操作数:寄存器寻址;目的操作数:寄存器间接寻址(4)源操作数:直接寻址; 目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的寄存器间接寻址;目的操作数:隐含寻址(7)只有一个操作数,为变址寻

5、址(8)只有一个操作数,为相对寻址3. 已知DS=2000H ,有关的内存单元值为:(21000H)=00H , (21001H)=12H ,(21200H)=00H , (21201H)=10H , (23200H)=20H , (23201H)=30H , (23400H)=40H ,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号 COUNT 的偏移地址为 1200H。执行下列指令后,寄存器 AX、BX、SI 的值分别是多少?MOV BX,OFFSET COUNTMOV SI,BXMOV AX,COUNTSIBX答:执行结果为 BX=1200H,SI=1

6、000H,AX=3040H。4. 设标志寄存器值原为 0401H,AX=3272H,BX=42A2H。执行指令 SBB AL,BH 之后,AX 和标志寄存器的值分别是多少?答:由标志寄存器的原值 0401H 可知, F 的原值为 1,C故指令执行之后 AX=322FH,标志寄存器的值为 0410H,即 AF 变为 1,CF 变为 0,其余不变。5.设若标志寄存器原值为 0A11H,SP=0060H,AL=4。下列几条指令执行后,标志寄存器、AX、SP 的值分别是多少?PUSHFLAHFXCHG AH,ALPUSH AXSAHFPOPF答:指令执行后标志寄存器的值为 0411H,AX=0411H

7、 ,SP=005EH。6. 若 AX=26D3H,CX=7908H,CF=1,执行下列指令后,寄存器 AX、CX 的值分别是多少?CF=?OF=?SAL CH,1RCR AX,CLROL AL,1 答:执行结果为 AX=0A64CH,CX=0F208H,CF=OF=0。7. 已知 IP=1000H,CF=0,则执行指令 JNC Short label 后,下列各数中哪一个是可能的 IP 值?(A)0FFFFH(B)0FFEH(C)10FEH(D)1100H答:(B)简析:条件转移指令执行前 IP=1000H,执行该指令后 IP=1002H;又因 CF=0,所以应跳转至目标地址处,该处对应的新

8、IP 值=1002H相对位移量。由于条件转移指令的跳转范围在距本条指令128+127 个字节内,即新 IP 值可能的取值范围为 0F82H1081H,因此只有答案 B 符合条件。8. 设 DS=4500H,AX=0508H,BX=4000H,SI=0320H。当 8088CPU 在最小组态下执行指令 MOV BXSI0100H,AX 时,各控制信号 IO/ M 、DT/ R 、 RD 、WR 在有效期间的状态分别是什么?数据总线和地址总线上的数分别是多少?答:各控制信号IO/ M、DT/R、RD、WR在有效期间的电平分别是:低、高、高、低。数据总线上的数是 0508H,地址总线上的地址是 49

9、420H。9. 已知有某字串BUF1的首址为0000H,BUF2的首址为0010H,数据段与附加段重合。欲从BUF1处开始将10个字数据顺序传送至 BUF2 处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。LEA SI,BUF1ADD SI,18 LEA DI,BUF2ADD DI, 18STDMOV CX,10REP MOVSW 10. 已知有程序段如下:MOV AL,35HMOV DL,ALAND DL,0FHAND AL,0F0HMOV CL,4SHR AL,CLMOV BL,10MUL BLADD AL,DL执行之后,AL 等于多少?该程序段完成了什么功能?答:程序段执

10、行后AL=23H。该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。11. 以 HEX 为首址的字节单元处存放着一串 ASCII 字符:“0123456789ABCDEF”,并有程序段如下:MOVBX,OFFSET HEXLEA DI,HCODINC DISTDMOV AL,5CHMOV AH,ALAND AL,0FHXLAT HEXSTOSBMOV AL,AHMOV CL,4SHR AL,CLXLAT HEXSTOSB上述程序段执行后,字节单元 HCOD 及其相邻单元 HCOD1 的内容是多少?该程序段的功能是什么?答:程序段执行后,HCOD 单元的内容是5,HCO

11、D+1 单元的内容是C。该程序段将 AL 中存放的 1 字节十六进制数转换为 2 个对应的 ASCII 字符存放在 HCOD 及其相邻单元 HCOD1 中。12. 有程序段如下:MOV AL,DB1MOV AH,0MOV DL,10L1:DIV DLMOV BL,AHMOV BH,0PUSH BXMOV AH,0CMP AL,0JNZ L1若内存单元 DB1 的值为 7BH,则程序将依次向堆栈压入哪些数据?该程序段实现了什么功能?答:先后存入堆栈中的字数据依次是3、2、1。该程序段实现了将一个字节的无符号十六进制数DB1转换为非组合BCD码存入堆栈的功能,堆栈中最先压入的是十进制数的个位(每个十进制位在堆栈中占1个字单元)。14. 下面的程序执行后,DX、AX 的值分别是多少?;以 X 为首址的字单元中的数据依次为 1234H、5678H;以 Y 为首址的字单元中的数据依次为 8765H、4321HLEA SI,XLEA DI,YMOV DX,SI2MOV AX,XADD AX,XADC DX,SI2CMP DX,DI2JL L2CMP AX,YJL L1JMP EXITL1:MOV AX,1JMP EXITL2:MOV AX,2EXIT:答:执行结果为 AX=2,DX=0ACF0H。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号