《2022年微机原理与接口技术作业答案 .pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术作业答案 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理与接口技术第3 章作业答案1.简要分析 8086 的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086 指令系统有哪些寻址方式?【解答】8086 的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给出的找到操作数或操作数地址采用的方式。8086 指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O 端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O端口指令IN 和 OUT 使用的端口寻
2、址方式有直接寻址和间接寻址。2.设(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1)MOV AX,21H (2)MOV AX,BX (3)MOV AX,1000H(4)MOV AX,VAL (5)MOV AX,BX (6)MOV AX,ES:BX(7)MOV AX,BP (8)MOV AX,SI (9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXSI(12)MOV AX
3、,VALBXSI【解答】(1)MOV AX,21H 立即寻址,源操作数直接放在指令中(2)MOV AX,BX 寄存器寻址,源操作数放在寄存器BX 中(3)MOV AX,1000H 直接寻址,EA=1000H,PA=(DS)10H EA=2000H 10H1000H=21000H(4)MOV AX,VAL 直接寻址,EA=V AL=0050H,PA=(DS)10H EA=2000H 10H0050H=20050H(5)MOV AX,BX 寄存器间接寻址,EA=(BX)=0100H,PA=(DS)10HEA=2000H 10H0100H=20100H(6)MOV AX,ES:BX 寄存器间接寻址,
4、EA=(BX)=0100H,PA=(ES)10H EA=2100H 10H 0100H=21100H(7)MOV AX,BP 寄存器间接寻址,EA=(BP)=0010H,PA=(SS)10HEA=1500H 10H0010H=15010H(8)MOV AX,SI 寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)10HEA=2000H 10H00A0H=200A0H(9)MOV AX,BX+10 寄存器相对寻址,EA=(BX)10D=0100H 000AH=010AH,PA=(DS)10HEA=2000H 10H010AH=2010AH(10)MOV AX,VALBX 寄存器相对寻址,
5、EA=(BX)VAL=0100H 0050H=0150H,PA=(DS)10HEA=2000H 10H0150H=20150H(11)MOV AX,BXSI 基址变址寻址,EA=(BX)(SI)=0100H00A0H=01A0H,PA=(DS)10H EA=2000H 10H01A0H=201A0H(12)MOV AX,VALBXSI 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -基址变址相对寻址,EA=(BX)(SI)VAL=0100H 00A0H 0050H=01F0H,PA=(DS)10HEA=2000H 10H01F0H=201F0H 3.给定寄存器及存储单元
6、的内容为:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。试说明下列各条指令执行完后,AX 寄存器中保存的内容是什么。(1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,1200H(4)MOV AX,BX (5)MOV AX,1100HBX (6)MOV AX,BXSI【解答】(1)MOV AX,1200H ;执行后,(AX)=1200H(2)MOV AX,BX
7、 ;执行后,(AX)=(BX)=0100H(3)MOV AX,1200H 直接寻址,EA=V AL=1200H,PA=(DS)10H EA=2000H 10H1200H=21200H,执行后,(AX)=B61AH(4)MOV AX,BX EA=(BX)=0100H,PA=(DS)10H EA=2000H 10H0100H=20100H,执行后,(AX)=5132H(5)MOV AX,1100HBX EA=(BX)1100H=0100H 1100H=1200H,PA=(DS)10H EA=2000H 10H 1200H=21200H,执行后,(AX)=B61AH(6)MOV AX,BXSI EA
8、=(BX)(SI)=0100H 0002H=0102H,PA=(DS)10H EA=2000H 10H 0102H=20102H,执行后,(AX)=29D1H 4.分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1)MOV AH,BX (2)MOV BX,SI(3)MOV AX,SIDI (4)MOV MYDATBXSI,ES:AX(5)MOV BYTE PTRBX,1000 (6)MOV BX,OFFSET MA YDA TSI(7)MOV CS,AX (8)MOV DS,BP【解答】(1)MOV AH,BX 错误,寄存器类型不匹配,可改为MOV AX,BX(2)MOV BX,SI
9、 错误,两个操作数不能都为存储单元,可改为MOV BX,SI 或 MOV BX,SI(3)MOV AX,SIDI 错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,BXDI。(4)MOV MYDA TBXSI,ES:AX 错误,AX 签不能有段跨越前缀,去掉ES:,改为 MOV MYDA TBXSI,AX(5)MOV BYTE PTRBX,1000 错误,1000 超出字节空间存储范围(6)MOV BX,OFFSET MA YDATSI ;正确(7)MOV CS,AX 错误,MOV 指令 CS 不能做目的操作数,可改为MOV DS,AX(8)MOV DS,BP ;正确注:本题错误改正
10、部分有的答案并不唯一,可参考原题题意改成合法形式。3.5 设 VAR1、VAR2 为字变量,LAB 为标号,分析下列指令的错误之处并加以改正。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -(1)ADD VAR1,VAR2 (2)MOV AL,VAR2(3)SUB AL,VAR1 (4)JMP LABSI (5)JNZ VAR1 (6)JMP NEAR LAB【解答】(1)ADD VAR1,VAR2 错误,两个操作数不能都为存储单元,可改为MOV BX,VAR2 ADD VAR1,BX(2)MOV AL,VAR2 错误,数据类型不匹配,可改为MOV AX,VAR2(3)
11、SUB AL,VAR1 错误,数据类型不匹配,可改为SUB AX,VAR1(4)JMP LABSI 错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1SI(5)JNZ VAR1 错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB(6)JMP NEAR LAB 错误,缺少运算符PTR,可改为JMP NEAR PTR LAB 注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。6 写出能够完成下列操作的8086CPU 指令。(1)把 4629H 传送给 AX 寄存器;(2)从 AX 寄存器中减去3218H;(3)把 BUF 的偏移地址送
12、入BX 中。(4)把 BX 和 DX 寄存器的内容相加,结果存入DX 寄存器中;(5)用 BX 和 SI 的基址变址寻址方式,把存储器中的一个字节与AL 内容相加,并保存在AL 寄存器中;(6)用寄存器 BX 和位移量21B5H 的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;(7)用位移量 2158H 的直接寻址方式把存储器中的一个字与数3160H 相加,并把结果送回该存储器中;(8)把数 25H 与(AL)相加,结果送回寄存器AL 中。【解答】(1)MOV AX,4629H(2)SUB AX,3218H(3)LEABX,BUF(4)ADD DX,BX(5)ADD AL,BXSI(6)ADD 21B5HBX,CX(7)ADD WORD PTR 2158H,3160H(8)ADD AL,25H 10【解答】(1)(AX)=0005H,(BX)=0010H,(CX)=0000H,(DX)=0000H(2)(AX)=0003H,(BX)=0007H,(CX)=0002H,(DX)=0000H(3)(AX)=0002H,(BX)=0004H,(CX)=0003H,(DX)=0001H 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -