第3章 8086指令系统习题解答
第3章_6 8086指令系统(分支CPU指令)及习题

例如:DI=200H 双字(DS:0200H)=12345678H JMP DWORD PTR [DI] 指令执行: 低位字:(IP)=5678H 高位字:(CS)=1234H
Part1 JMP DWORD PTR [DI]
CS:0100H
Part2 XXX Part3
1234H:5678H
五、程序转移指令—条件转移
SF PF
OF
五、程序转移指令—条件转移 复杂转移:
由多个标志的状态决定的转移,分为有符号数和无符号数转移 •无符号数转移指令 比较两个无符号数,并根据比较结果转移 JA 标号 ;两数比较,高于则转移 (JNBE) JNA 标号 ;两数比较,不高于则转移(JBE) JB 标号 ;两数比较,低于则转移 (JNAE) JNB 标号 ;两数比较,不低于则转移(JAE) •有符号数转移指令 比较两个带符号数,并根据比较结果转移 JG 标号 ;两数比较,大于则转移 (JNLE) JNG 标号 ;两数比较,不大于则转移(JLE) JL 标号 ;两数比较,小于则转移 (JNGE) JNL 标号 ;两数比较,不小于则转移(JGE)
CS:0100H 跳过1134H CS:1234H
例如: JMP 1234H 指令跳转到 CS:1234H执行。
Part3
五、程序转移指令—无条件转移
•段内转移: •直接短转移 : JMP SHORT START
SHORT START为 8位位移量 (-128~+127) •执行操作:(IP)←(IP)+2±位移量 例如: JMP SHORT START (=12H) 指令跳转到 CS:(IP+2+12H)执行。 例如: JMP SHORT START (= -12H) 指令跳转到 CS:(IP+2 - 12H)执行
微机原理与接口技术第3章作业答案

《微机原理与接口技术》第3章作业答案1. 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。
操作码:要完成的操作。
操作数:参与操作的对象。
寻址:寻找操作数或操作数地址的过程。
寻址方式:指令中给出的找到操作数或操作数地址采用的方式。
8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。
其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O 端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。
2. 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量V AL 的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,V AL (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,V AL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,V AL[BX][SI]【解答】(1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,[1000H]直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H(4) MOV AX,V AL直接寻址,EA = [V AL] = 0050H,PA =(DS)×10H+EA = 2000H×10H+0050H = 20050H(5) MOV AX,[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H(6) MOV AX,ES:[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA = 2100H×10H+0100H = 21100H(7) MOV AX,[BP]寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA = 1500H×10H+0010H = 15010H(8) MOV AX,[SI]寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H(9) MOV AX,[BX+10]寄存器相对寻址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)×10H+EA = 2000H×10H+010AH = 2010AH(10)MOV AX,V AL[BX]寄存器相对寻址,EA =(BX)+[V AL]= 0100H+0050H= 0150H,PA =(DS)×10H+EA = 2000H×10H+0150H = 20150H(11)MOV AX,[BX][SI]基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H +01A0H = 201A0H(12)MOV AX,V AL[BX][SI]基址变址相对寻址,EA = (BX)+(SI)+[V AL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H +EA = 2000H×10H+01F0H = 201F0H3. 给定寄存器及存储单元的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。
微型计算机课后答案(第三章)

13. 字节扩展指令和字扩展指令用在什么场合,举例说明? 8086 的除法要求被除数的位数为除数的 2 倍,即字节除法要求被除数为 16 位,字
相除时要求被除数为 32 位。如果被除数不满足此要求时,对于无符号数,将高位补零 即可,对于无符号数,不能简单的将被除数高位填 0,必须按照被除数的符号来扩展。
微型计算机课后答案(第三章)
(三)习题三解答
1. 8086 汇编语言指令的操作数寻址方式有哪几类?
答:8086/8088 对于操作数寻址提供了 8 种寻址方式,他们是隐含寻址,立即数寻址,
寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址和相对基址变址
寻址。寄存器寻址的指令执行速度最快。
(6) MOV AX,[SI+DI]
(7) MOV AH,300
(8) MOV [SI],[DI]
(9) PUSH AL
(10) POP DH
(11) MOV CS,AX
(12) MOV SS,AX
(13) SHL AX,3
答: 指令
(1) INC [SI]
(2) MOV AX,BL
(3) MOV 2,AX
8086 专门提供了符号扩展指令 CWD 和 CBW 方便用户扩展。
14. 设若内存单元 DATA 在数据段中偏移量为 24C0H 处,24C0H~24C3H 单元中依次存 放着 55H、66H、77H、88H。下列几条指令执行后,寄存器 AX、BX、CL、SI、DS 的 值分别是多少?
MOV AX,DATA LEA SI,DATA MOV CL,[SI] LDS BX,DATA 答:执行结果为 AX=6655H,BX=6655H,CL=55H,SI=24C0H,DS=8877H。
8086微处理器指令系统习题集

第三章 8086微处理器指令系统习题集一.单项选择题1. 逻辑地址1000:2000对应的物理地址为()。
A. 1200HB. 12000HC. 2100HD. 21000H2. 下面哪个寄存器使用时的默认段寄存器为SS()。
A. AXB. BXC. SPD. SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在()段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第()组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在()。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为()。
A. 有效地址B. 物理地址C. 逻辑地址D. 相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=(()。
A. 0FFFFHB. 0F47FHC. 2032HD. 0F000H8.现行数据段位于存储器BOOOOH到BOFFFH字节单元,则段寄存器DS的内容及该段长度(字节数)分别为: ()A. BOOOH,1000H B. O0OOH,OFFFHC. BOOOH,OFFFHD. BOOOH,OOFFH9.寄存器间接寻址方式中,操作数在()中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是()。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 堆栈的工作方式是()A.先进先出B.随机读写C.只能读出不能写入D.后进先出12. 8086/8088中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
微计算机原理(第2版)第三章课后习题答案解析讲课讲稿

微计算机原理(第2版)第三章课后习题答案解析讲课讲稿微计算机原理(第2版)第三章课后习题答案解析第三章 80x86 指令系统3-1 指令由操作码字段和操作数字段组成。
8086的指令长度在1~6字节范围。
3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。
若是存储器寻址,使用表达式表示出EA=? PA=?(1) MOV SI, 2100H (2) MOV CX, DISP[BX] (3) MOV [SI], AX (4) ADC ZX, [BX][SI] (5) AND AX, DX (6) MOV AX,[BX+10H](7) MOV AX, ES:[BX] (8)MOV AX, [BX+SI+20H] (9) MOV [BP], CX (10) PUSH DS解:3-3 已知8086中一些寄存器的内容和一些存储器单元的内容如图3-1所示,试指出下列各条指令执行后,AX中的内容。
(1)MOV AX, 2010H (2) MOV AX, BX (3) MOV AX, [1200H](4)MOV AX, [BX] (5) MOV AX, 1100H[BX] (6) MOV AX, [BX][SI](7)MOV AX, 1100H[BX+SI] (8) MOVLEA AX, [SI]解:(1)(AX)=2010H (2)(AX)=0100H (3)(AX)=4C2AH (4)(AX)=3412H(5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H图3-1 3-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,执行下列指令后,指出结果等于多少?解:(1)OUT DX, AL (0380H)=40H(2)OUT DX, AX (380H)=40H (381h)=20H(3)IN AL, PORT (AL)=1FH(4)IN AX, 80H (AX)=451FH(5)OUT PORT1, AL (PORT1)=40H(6)OUT PORT1, AX (PORT1)=2040H3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213,试画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。
第3章 8086指令系统习题解答

(1)MOV CL,[BX+20H][SI] 解:EA= BX+20H+SI=56H PA=DS*16+EA=91D0H+56H=9226H CL=(09226H)=F6H (2)MOV[BP][DI],CX 解: EA= BP+DI=56H PA=SS*16+EA=1E4F6H (1E4F6H)= 5678H
(3)AX=42C8H,BX=608DH 解:ADD AX,BX CF=0 ,OF=1, AX=0AC55H SUB AX,BX;CF=0,OF=0;L3 (4) AX=0D023H,BX=9FDOH 解:ADD AX,BX OF=1,CF=1,AX=6FF3H SUB AX,BX ;CF=1,OF=1;L5 (5)AX=9FDOH,BX=0D023H 解:ADD AX,BX OF=1,CF=1,AX=6FF3H SUB AX,BX ;CF=1,OF=1;L5
(1)当AL =00H时, 3.6 AND AL,AL 程序转向BRCHl JZ BRCHl RCR AL,1 (2)当AL =01H时, JZ BRCH2 程序转向BRCH2 RCL AL,1 INC AL (3)当AL =0FFH时, JZ BRCH3 程序转向BRCH3 上述程序运行后,试回答:
第三章习题讲评
3.1 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。 在以上给出的环境下,试问下列指令或指令段执行后的结果如何?
(3)LEA BX,[BX+2= BX+20H+ SI=0056H EA= BX+2=58H PA=DS*16+EA=91D0H+58H=9228H AX=(09228H)=1E40H
微机原理与接口技术习题答案3
第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
第3章 8086寻址方式和指令系统-题
第3章8086寻址方式和指令系统一、单项选择题(共50小题)1、指令MOV AX,[3070H]中源操作数的寻址方式为()A、寄存器间接寻址B、立即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、目的操作数是寄存器操作数B、源操作数是存储器操作数C、目的操作数是存储器操作数D、源操作数是立即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器7、指令MOV AX,[BP]中A、源操作数存于数据段B、源操作数存于堆栈段C、目的操作数存于数据段D、目的操作数存于堆栈段8、BX是()A、8位通用寄存器B、16位通用寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、方向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通用寄存器D、变址寄存器11、SI是()A、8位通用寄存器B、16位通用寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通用寄存器C、8位通用寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)14、下面4个寄存器中,不能作为间接寻址的寄存器是()A、BXB、DXC、BPD、DI15、设SS=2000H,执行下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址方式中,操作数在( )中。
A、通用寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作用是( )。
课后作业答案Ch3
在两个16位数进行加法运算时,对CF、ZF、SF和O各标志位的状态分别为:AF=0,PF=1,CF=1,ZF=0,SF=0, OF=1。 3.13将+46和-38分别乘以2,可应用什么指令来完成?如果除以2呢? 解:因为对二进制数,每左移一位相当于乘以2,右移一位相当 于除以2。所以,将+46和-38分别乘以2,可分别用逻辑左移指令 (SHL) (SHL)和算术左移指令(SAL) 完成。SHL指令针对无符号数,SAL (SAL) SHL ,SAL 指令针对有符号数。 当然,也可以分别用无符号数乘法指令MUL和有符号数乘法 指令IMUL完成。 如果是除以2,则进行相反操作,即用逻辑右移指令SHR或无符 号数除法指令DIV实现+46除以2的运算,用算术右移指令SAR或 有符号数除法指令IDIV实现-38除以2的运算。
3.11 分别指出以下两个程序段的功能: (1) (2) MOV CX,l0 CLD LEA SI,FIRST LEA DI, [1200H] LEA DI, SECOND MOV CX,0FOOH STD XOR AX,AX REP MOVSB REP STOSW 解: (1)该段程序的功能是:将数据段中FIRST为最高地址的10个字节 数据按减地址方向传送到附加段SECOND为最高地址的向前10个单 元中。 (2)将附加段中偏移地址为1200H单元开始的0FOOH个字单元清0。 3.12 执行以下两条指令后,标志寄存器FLAGS的六个状态位各为 什么状态? MOV AX,84A0H ADD AX,9460H 解:执行ADD指令后,6个状态标志位的状态分别为: 10
第3章 8088/8086指令系统 章 指令系统
3.1什么叫寻址方式?8086/8088CPU共有哪几种寻址 方式? 解:寻址方式主要是指获得操作数所在地址的方法. 8086/8088CPU具有:立即寻址、直接寻址、寄存器 寻址、寄存器间接寻址、寄存器相对寻址、基址一 变址寻址、基址一变址-相对寻址以及隐含寻址等8 种寻址方式。 3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H, (Si)=00A0H,(BX)=0800H,(BP)=1200H,数据变 量VAR为0050H. 请分别指出下列各条指令源操作 数的寻址方式?它的物理地址是多少?
第3章 8086指令系统(最后有练习题)
3.1 8086的寻址方式 3.2 8086的指令系统
开始
8086CPU的指令系统的基本指令
包括数据传送类指令、算术运算类指令、 位操作类指令、串操作类指令、控制转移 类指令、处理机控制类指令。后几节将分 别介绍这些指令的语句格式和功能。
3.1 8086的寻址方式
3.1.1 数据的寻址方式 3.1.2 程序转移地址的寻址方式 3.1.3 对端口的寻址方式
[BP] BP作间址寄存器。
•段地址的确定: BX、DI、SI默认对应DS; BP默认对应SS。
【例3-4】寄存器和存储器内容分别为: (AX)=0,(BP)=0030H,(SS)=2000H, (20030H)=1234H 执行指令MOV AX,[BP],问执行后(AX)=? Step1:计算地址SS*16+BP=20030H Step2:找内容(20030H)=1234H 所以执行后:(AX)=1234H
返回本节
3.2.1.1 通用数据传送指令
1.传送指令MOV 2.数据交换指令XCHG 3.查表转换指令 XLAT
1.传送指令MOV 语句格式:MOV OPD,OPS 功能:将源操作数传送入目的地址,源地 址内容不变。即(OPS)→OPD。
下图3.1描述了MOV指令在传送数据时允许 传送的路径及类型。
汇编格式:[BR][IR] 功能:操作数在存储器中,BR的内容加IR的
内容形成操作数的偏移地址EA。
6.基址变址寻址
注意:基址变址寻址方式适于数组、字符 串、表格的处理,它必须是一个基址寄存器
(BX、BP)和一个变址寄存器(SI、DI)的组 合. 下面两种形式是错误的: MOV AX, [BX][BP] 或MOV AX, [SI][DI]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.4
阅读下列各小题的指令序列,在后面空格中填入 该指令序列的执行结果。 (1) MOV BL,85H MOV AL,17H ADD AL,BL DAA AL=____, BL=____, CF=____ 解:17H+85H=9CHAL DAA 压缩的BCD码加法十进制调整指令。 (AL的低4位>9或AF=1,ALAL+06H,AF1; AF是辅助进位标志用以标志D3向D4的进位 AL的高4位>9或CF=1,ALAL+60H,CF1;) AL=9CH+ 06H=0A2H AL=0A2H+60H=02H, BL=85H CF=1
(4) MOV AX,0150H[BP] AX=____ 解:EA= BP+0150H=1350H PA=SS*16+EA=20000H+1350H=21350H AX=5188H
(5)POP AX ; AX=____,SP=____ 解:EA= SP=1350H PA=SS*16+EA=20000H+1350H=21350H AX=5188H, SP=1350H+2H=1352H (6)ADD[SI],CX (11354H)=____,(11355H)=____,SF=____ ZF=____, PF=____, CF=____, OF=____ 解:EA=SI=1354H, PA=DS*16+EA=10000H+1354H=11354H CX=339AH, (11354H)=52H,(11355H)=OE7H 0E752H+339AH=11AECH->(11355H): (11354H) (11354H) =0ECH, (11355H)= 1AH
(10)SAR BYTE PTR 0150H[BX],1 (11350H) =____, CF=____, OF=____ 解:EA=BX+0150H=1350H PA=DS*16+EA=11350H, (11350H)=0A5H= 10100101B 11010010B=0D2H, CF=1,OF=0 (当移位数为1是,最高位不变则OF=0) (11)SAL BYTE PTR 0150H[BX],1 (11350H)=____,CF=____,OF=____ 解:EA=BX+0150H=1350H,PA=DS*16+EA=11350, (11350H)=0A5H= 10100101B 01001010B=4AH, CF=1,OF=1
(2) MOV AX,BX;NOT AX; ADD AX,BX; lNC AX AX=____,CF=____ 解:lNC不影响标志位 AX=0000H, CF=0 (3)MOV AX,0FF60H ; STC ; MOV DX,96 XOR DH,0FFH ; SBB AX DX AX=____,CF=____ 解:XOR 命令 会使 CF0,OF0 96=60H,AX=0000H, CF=0 (4)MOV BX,0FFFEH ; MOV CL,2;SAR BX,CL BX=____,CF=____ 解:0FFFEH=1111111111111110B 1111111111111111B,CF=0 1111 1111 1111 1111B,CF=1
SI=(09226H)=00F6H, DS=(09228H)=1E40H EA= SI=00F6H, PA=DS*16+EA=1E400H+00F6H=1E4F6H (1E4F6H)= BX=0024H
(5)
XCHG CX,[BX+32H] XCHG[BX+20H][SI],AX
解:EA= BX+32H=56H, PA=DS*16+EA=91D0H+56H =9226H (09226H)= CX=5678H , CX=(09226H)=00F6H EA= BX+20H+SI=56H,PA=DS*16+EA=91D0H+56H =9226H AX=(09226H)=5678H ,(09226H) =
(3)LEA BX,[BX+20H][SI] MOV AX,[BX+2] 解:BX= BX+20H+ SI=0056H EA= BX+2=58H PA=DS*16+EA=91D0H+58H=9228H AX=(09228H)=1E40H
(4) LDS SI,[BX][DI] MOV[SI],BX 解:EA= BX+DI=56H, PA=DS*16+EA=91D0H+56H =9226H
(1)MOV CL,[BX+20H][SI] 解:EA= BX+20H+SI=56H PA=DS*16+EA=91D0H+56H=9226H CL=(09226H)=F6H (2)MOV[BP][DI],CX 解: EA= BP+DI=56H PA=SS*16+EA=1E4F6H (1E4F6H)= 5678H
3.7完成下列操作,选用什么指令: (1)将AX的内容减去0520H,和上次运算的借位; SBB AX,0520H (2)将变量名TABL的段地址送AX。 MOV AX SEG TABL 3.8 D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取D1的偏移地址 SI中的三种方法。 (A) LEA SI,D1 (B) MOV SI,OFFSET D1 (C) MOV SI,D2
(3)AX=42C8H,BX=608DH 解:ADD AX,BX CF=0 ,OF=1, AX=0AC55H SUB AX,BX;CF=0,OF=0;L3 (4) AX=0D023H,BX=9FDOH 解:ADD AX,BX OF=1,CF=1,AX=6FF3H SUB AX,BX ;CF=1,OF=1;L5 (5)AX=9FDOH,BX=0D023H 解:ADD AX,BX OF=1,CF=1,AX=6FF3H SUB AX,BX ;CF=1,OF=1;L5
3.9 程序段1 程序段2 MOV AX , 147BH MOV AX , 99D8H MOV BX , 80DCH MOV BX , 9847H ADD AX , BX SUB AX , BX JNO L1 JNC L3 JNC L2 JNO L4 上述两个程序段执行后,分别转移到哪里? 解:1) L1 2) L3
(1)当AL =00H时, 3.6 AND AL,AL 程序转向BRCHl JZ BRCHl RCR AL,1 (2)当AL =01H时, JZ BRCH2 程序转向BRCH2 RCL AL,1 INC AL (3)当AL =0FFH时, JZ BRCH3 程序转向BRCH3 上述程序运行后,试回答:
(11354H) =0ECH, (11355H)= 1AH CF=1,ZF=0, PF(低八位奇偶校验):0ECH= 11101100BPF=0 SF(最高位状态),1H=0001BSF=0 OF(溢出标志) 0E752H=1110011101010010B 339AH=11001110011010B 1110011101010010 + 11001110011010 10001101011101100
第三章习题讲评
3.1 已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。 在以上给出的环境下,试问下列指令或指令段执行后的结果如何?
• 3、3 设下列各转移指令的第一字节在内存中的地址为 CS=2000H和IP=016EH,且环境均为DS=6000H, BX=16C0H,(616C0H)=46H,(616C1H)=01H, (616C2H)=00H,(616C3H)=30H,(61732H) =70H,(61733H)=17H。写出下列各无条件转移指令 执行后CS和IP值。个指令左首的16进制编码是该指令的机 器码。指令中的目的地址用相应的标号表示。 (1)EBE7 JMP SHOURT AGAIN (2)E90016 JMP NEARPTR OTHER (3)E3 JMP BX (4)EA46010010 JMP FAR PROB (5)FF67 JMP WORD PTR 0072H[BX] (6)FFEB JMP DWORD PTR [BX]
AX=1234H
3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H, SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H, (11354H)=52H,(11355H)=OE7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H, (21351H)=51H 下列各指令都在此环境下执行,在下列各小题的空格中填入相应各指令的执行结果。
(7)SUB BH,0150H[BX][SI] BH=____,SF=____,ZF=____,PF=____,CF=____,0F=____ 解:EA=0150H+BX+SI=26A4H; PA=DS*16+EA=10000H+26A4H=126A4H; (126A4H)=9DH,BH=12H BH=75H, SF=0,ZF=0,PF=0, CF=1 ,OF=0 (8)INC BYTE PTR 0152H[BX] (11352H)=____,(11353H)=____,CF=____ 解:EA=0152H+ BX= 1352H,PA=DS*16+EA=11352, (11352H)=0FFH, (11352H)=00H, (11353H)= 26H, 不影响CF (9)INC WORD PTR 0152H[BX] (11352H)=____,(11353H)=____,CF=____ 解:EA=0152H+ BX= 1352H, PA=DS*16+EA=11532, (11352H)=0FFH, (11353H)= 26H (11352H)=00H, (11353H)= 27H, 不影响CF