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

合集下载

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

第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)执行

微机原理与接口技术(第三版)课本习题答案.

微机原理与接口技术(第三版)课本习题答案.

第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。

指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。

总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。

从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。

5.简述8086系统中物理地址的形成过程。

8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。

8086系统采用分段并附以地址偏移量办法形成20位的物理地址。

采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。

通过一个20位的地址加法器将这两个地址相加形成物理地址。

具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。

由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。

8086微处理器指令系统习题集

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中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器中。

习题3-8086指令系统

习题3-8086指令系统

习题三8086指令系统主要内容:8086指令系统。

主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。

1.单选题:(1)执行下面指令序列后,结果是(A)。

MOV AL,82HCBWA、(AX)=0FF82HB、(AX)=8082HC、(AX)=0082HD、(AX)=0F82H(2)与MOV BX,OFFSET VAR指令完全等效的指令是(D )。

A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。

A、CMPB、SUBC、ANDD、MOV(4)下面指令执行后,改变AL寄存器内容的指令是(D )。

A、TEST AL,02HB、OR AL,ALC、CMP AL,BD、AND AL,BL(5)设DH=10H,执行NEG DH指令后,正确的结果是(D )。

A、(DH)=10H,CF=1B、(DH)=0F0H,CF=0C、(DH)=10H,CF=0D、(DH=0F0H,CF=1(6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A )。

A、85B92HB、86192HC、BB690HD、12169H(7)下列指令中,执行速度最快的是(C )。

A、MOV AX,100B、MOV AX,[BX]C、MOV AX,BXD、MOV AX,[BX+BP]2.8086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。

(1)MOV AL,0110 0100BSUB AL,58H ;(AL)=0CH,AF=1DAS ;(AL)=06H, AF=1ADD AL,89H ;(AL)=8FH, AF=0DAA ;(AL)=95H,AF=1,SF=1结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0(2)MOV AL,05HMOV BL,09HMUL BL ;(AX)=002DH, SF、AF、CF、OF=0AAA ; (AX)=0103H;AAM ; ; (AX)=0405H结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=03.分析执行下列指令序列后的结果:MOV AL,10110101BAND AL,00011111B ;(AL)=0001 0101BOR AL,11000000B ;(AL)=1101 0101BXOR AL,00001111B ;(AL)=1101 1010BNOT AL ;(AL)=0010 0101B4.假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF的值。

第3章 8086指令系统习题解答

第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章8086微处理器的指令系统(1)资料

大工计算机原理第3章8086微处理器的指令系统(1)资料

第3章 8086微处理器的指令系统(1)3.1 指令系统概述● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。

它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。

8086CPU 包含133条指令● 指令是使计算机执行某种(特定操作)的二进制编码。

指令一般包括两个部分:(操作码域)和(地址域)。

填空操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。

地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。

● 机器指令:计算机能(直接识别)的二进制代码。

● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与机器指令是一一对应的● 汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。

3.2寻址方式● 根据(指令内容)确定(操作数地址)的过程,称为寻址。

● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。

有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。

牢记什么是EA ?什么是PA ?怎么计算?后面有关于EA 和PA 的解释及计算方法!● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。

如果没有特别说明,寻址方式是指源操作数的寻址方式。

1、隐含寻址(隐含了规定的操作数)例:DAA 指令,只有操作码,无操作数。

规定对AL 中的内容进行压缩BCD 码转换。

2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器)例:MOV AX ,1234H (若CS=1000H ,IP=100H )3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器)例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H )☞操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP(8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL例2:MOV ES:[1234H],BL (ES =4000H )注意:(1)指令中给出的[4000H]和[1234H]是操作数的偏移地址。

第3章_8086指令系统

第3章_8086指令系统

EA =

(BX) (BP)
+
(SI)
(DI)
同一组内的寄存器不能同时出现。
寻址的寄存器为BX时,默认的段寄存器为DS ; 寻址的寄存器为 BP时,默认的段寄存器为SS 。 例: MOV AX, [BX] [SI] MOV AX, [BX+SI] MOV AX, DS: [BP] [DI] 错误例: × MOV AX, [BX] [BP] × MOV AX, [DI] [SI]
立即数只能作为源操作数
MOV AX,0FA00H MOV 8000H,DX ;正确 ;错误
• 2、寄存器操作数
存放在8个通用寄存器或4个段寄存器中的操作数
AX BX CX DX
AH BH CH DH
AL BL CL DL
可以存放8位或 16位操作数
SI DI BP SP
只能存放16位操作数
CS
DS ES SS
61200
AX AH AL
61200H
44H 33H
数 据 段
寄存器相对寻址

EA=间址寄存器的内容加上一个8/16位的位移量
(BX)
EA =
(BP) (SI) (DI)
+
8位
16位
位移量
寻址的寄存器为BX、SI、DI,默认的段寄存器为DS ;
寻址的寄存器为 BP时,默认的段寄存器为SS 。

例: MOV AX, [BX+8] MOV CX, TABLE[SI] MOV AX, [BP+16H] ;
数 据 段
基址-变址-相对寻址
在基址-变址寻址的基础上再加上一个相对位移量 注意事项同基址-变址寻址

8086微处理器指令系统习题集

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中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器中。

第3章8086寻址方式和指令系统-题

第3章8086寻址方式和指令系统-题

第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、附加数据段寄存器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)B、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的作⽤是( )。

8086指令系统

8086指令系统

偏移地址
IP SP SI DI 有效地址EA 有效地址EA
2021/1/23
黄玉清制作
3.3 8086的操作数的寻址方式
任何内存实际地址(PA)都由两部分组成: PA=段基址+段内偏移地址(此单元与段基址的距离) 段内的偏移地址又称为有效地址(EA).
2021/1/23
黄玉清制作
3.3 8086的操作数的寻址方式
黄玉清制作
3.1概述
3.1 概述
80x86结构的基本数据类型
字节:8位 字:16位,2个字节 双字:32位,4个字节 四字:64位,8个字节(80486CPU引入) 双四字:128位,16个字节(Pentium III)
数据在内存中的字节顺序
80X86多字节数据的存放原则是低位字节在低端地址, 高位字节在高端地址。 而最低地址就是操作数的地址。
数据段
黄玉清制作
8086执行某种操作时,预先规定了采用的段和段寄 存器,即有基本的段约定,如果要改变默认的段 约定(即段超越)ห้องสมุดไป่ตู้则需要在指令中明确指出来.
例如:
MOV BX,ES:[3400H];
将附加段ES段中偏移地址为3400H和3401H两单元 的内容送BX中。
若用DATA代替偏移地址3400H :
操作数物理地址PA:
....
8BH
PA=2000H*16+1000H=21000H
07H
将 21000 H、21001 H 单元的内容送 AX。
....
代码段
执行结果: (AX) = 5B40 H 2000:1000 H 40
数据段
2000:1001 H 5B
AH AL
5B 40

第3章 8086指令系统(最后有练习题)

第3章  8086指令系统(最后有练习题)


开 始
8086CPU的指令系统的基本指令

包括数据传送类指令、算术运算类指令、 位操作类指令、串操作类指令、控制转移 类指令、处理机控制类指令。后几节将分 别介绍这些指令的语句格式和功能。
3.1 8086的寻址方式

3.1.1 数据的寻址方式 3.1.2 程序转移地址的寻址方式 3.1.3 对端口的寻址方式
3.1.2 程序转移地址的寻址方式
用来确定转移指令及CALL指令的转向地址。
段内寻址
段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址
段间寻址
段内:转移指令与转向的目标指令在同一代码段 中,(CS)不变。
段间:转移指令与转向的目标指令在两个代码段中, (CS) 变化。
表示转移距离(称为位移量)的操作符:
返回本节
2 . 寄存器寻址


寄存器寻址方式的操作数在指令指明的寄 存器中。 汇编格式:R ,其中R表示寄存器名。 功能:操作数直接存放在寄存器R中。 例如:MOV AL,BL
【例3-2】下列程序执行后,(AX)=?,
(BX)=?
MOV AX,1234H
MOV BX,5678H
ADD AX,BX 执行:1234H→AX 5678H→BX (AX)+(BX)→AX 执行后:(AX)=68ACH,(BX)=5678H
3 . 直接寻址




特点:操作数在内存中。 汇编格式:①含有变量的地址表达式。 ②段寄存器名:[EA] 。 功能:指令下一字单元的内容是操作数的偏 移地址EA。 图形表示:
【例3-3】
寄存器和存储器内容为:(AX)=1212H, (DS)=3000H,(32000H)=45H, (32001H)=46H。 执行指令:MOV AX ,[2000H] 问执行后:(AX)=? Step1:计算地址DS*16+2000H=32000H Step2:找内容(32000H),(32001H) 所以执行后:(AX)=4645H

CH3 8086指令系统

CH3 8086指令系统

PUSH指令(进栈操作指令)
指令格式:PUSH src 功能:SP-2→SP(隐含操作) ; 将字数据src送到EA=SP的堆栈段内;
例:PUSH AX
设AX=1020H
接下页
PUSH指令(进栈操作指令)
返回
POP指令(出栈操作指令)
指令格式:POP dst 功能:将EA=SP的字送到目的操作dst中。 SP+2→SP
(3)不能用CS做目的操作数; 接下页
MOV指令注意点
(4)不允许用立即数做目的操作数;
MOV 1000H,AX 错误
(5)不允许用立即数直接向段寄存器传送数据;
MOV
MOV MOV
DS,5000H 错误
AX,5000H 正确 DS,AX
(6)不允许在段寄存器之间直接传送数据;
MOV DS,CS 错误
例:POP BX
接下页
POP指令(出栈操作指令)
返回
堆栈操作指令注意点
堆栈指令使用时应注意两点: ①堆栈操作总是按字进行 ②不能从栈顶弹出一个字给CS
返回
XCHG指令
指令格式:XCHG dst, src
指令功能:dst 如:XCHG AX,BX XCHG CL,[BX+DI] 不影响标志位! src
运算结果的去向 执行的操作
接下页
指令格式
操作码 [操作数],[操作数]
目标操作数 执行何种操作 参加操作的数据 或数据存放的地址 接下页 源操作数
指令格式:
零操作数指令: 操作码 单操作数指令: 操作码 操作数 双操作数指令: 操作码 操作数,操作数 多操作数指令: 三操作数及以上
接下页
三、指令中的操作数
代 码 段

第三次课 8086的指令系统

第三次课   8086的指令系统

第三章8086的指令系统3.1 8086指令系统概述所谓一个微处理器的指令系统是一个微处理器所执行的全部指令的集合。

在8086的指令系统中一共有133条指令。

8086指令系统是在8位微处理器8080/8085的指令系统基础上设计的,它兼容了8080/8085的全部指令,这部分对8位微处理器具有兼容性的指令往往是处理字节(8位)的。

此外,8086还有自己所特有的对字或字符串的处理指令,以及对带符号数的运算指令、中断指令和协处理器指令。

对微处理器的指令的描述,一般有两种表示方法:指令的机器码和汇编指令。

无论对于机器码指令还是对于汇编指令均要解决三个问题(三个信息)(1)指令要完成什么操作(操作码);(2)参加这个操作的操作数在哪里(操作数);(3)操作结果放在哪里(结果);为了简化指令,通常在微机系统中规定:操作结果要放在某一个操作数中。

如MOV AL,08H;ADD AX,BX;(源操作数,目标操作数)这样,就将指令所要提供的信息简化为了两部分:操作码、操作数。

指令的机器码就是用二进制码描述指令的操作码和操作数的一种方式,实际上在微机系统内部,指令就是以机器码的形式存在的。

所谓的汇编指令是用指令功能的英文缩写表示操作码,用数字和符号表示操作数的指令描述方法。

例如操作码操作数MOV AX,2000H操作码B8H操作数:00H20H由于汇编语言程序有便于理解、识别、阅读和交流的优点。

所以汇编指令得到了广泛的应用。

但由于最终在机器中使用的是机器码,所以要有一个中间环节就是对其进行翻译。

3.2 8086指令的寻址方式所谓寻址方式就是寻找操作数的方式,所以寻址方式实际上在两种情况下被涉及:一种是用来对操作数进行寻址;另一种是对转移地址和调用地址进行寻址。

下面我们所讨论的寻址方式都是针对操作数的,关于指令地址的寻址,将在讲述转移指令和调用指令时作具体说明。

一条指令的机器码通常包含操作码(OP)和操作数两部分。

第三章8086微处理器指令系统习题答案

第三章8086微处理器指令系统习题答案

第三章8086微处理器指令系统习题答案一、单项选择题1.B2.C3.B4.D5.A6.C7.B8.C9.C10. D11.D12.C13.C14.A15.C16.B17.C18.B19.D20. D 21.B22.D23.A24.D25.A26.A27.A28.D29.C30. A 31.D32.C33.B34.D35.D36.D37.A38.B39.B40. B41.B42.A43.D44.D45.A46.C47.D48. C二、多项选择题1.ABC2.ABCD3.ABF4.BF5.BCD6.CD7.ABCDE8.BD三、填空题1.操作码,操作数2段地址,10H,偏移地址,02051H3.AA92AH4.立即,基址变址5.5425H6.D36AH7.源操作数为8位,目的操作数为16位,不匹配;源操作数和目的操作数不能同时为存储器;INC指令操作数不能为立即数;目的操作数的的地址大于字节。

8.6310H9.0132H,0112H10.0000H,1,1,0,011.1202H,1200H,2000H12.除413.7230H14.12AAH,0BBCCH15.6804H16.3,017.4154H,6F30H18.0,00FFH,0四、判断题×V ××V ××V ×V××××V ×V ×××五、读程序,指出结果1.11H2.5678H,1234H3.80H,04.1,15. 16.0132H,0112H7.01H,00H,08H8.0,09.79H,6H,7FH10.60H,35H11.37H,LAB2六、问答题3.(1) CF=0;ZF=0;PF=1;OF=0 (2) CF保持;ZF=0;PF=0;OF=0(3)CF=0;ZF=0;PF=0;OF=0 (4) PF=14. 解:5. 解:这两条指令的区别是,指令“MOV EAX,[ESI]”是将内存单元DS:[ESI]中的内容读到CPU中的寄存器EAX;而指令“MOV [ESI],EAX”是将CPU中寄存器EAX中的内容写入内存单元DS:[ESI]。

[小学教育]第三章 8086指令系统

[小学教育]第三章 8086指令系统

指令
数据
(a)
指令
内存
指令 基址寄存器 变址寄存器
变址值
EA
数据
(b)
指令
寄存器
寄存器
数据
(f) 指令
基址值
基址寄存器 变址寄存器 位移量
(c)
指令
寄存器
内存
变址值
寄存器
EA
(d) 指令
数据
基址值 (g)
寄存器 位移量
内存
+
数据
8086寻址方式
地址 (e)
内存
+ 数据
内存
+ EA 数据

§3.3 数据传送指令


[17000H] AL

[17001H] AH


原 理
[SI]

(2) 若EA = [BP] +

[DI]



则操作地址:SS: EA
第 三 章
7. 相对的基址加变址寻址
[SI]
(1) 若EA = [BX] +
+ 8位或16位偏移量
[DI]
则操作数地址:DS: EA
例 MOV AX,[BX+SI+0250H]
SI,DI - 变址寄存器
第 三 章
微 机
[SI] (1) 若EA = [BX] +
[DI]


则操作数地址:DS: EA
及 接
例 MOV AX,[BX+SI]

若 DS = 1000H, BX = 5000H, SI = 2000H
技 术

第3章.习题解答

第3章.习题解答

不能同为存储器操作数
(10)MOV SI,AL
类型不匹配
3.39 给定DS=1100H,BX=0200H,LIST=0250H和 SI=0500H。试确定下面各条指令寻址存储器的地址。
(1)MOV LIST[SI],EDX PA=DS*16+LIST+SI=11750H (2)MOV CL,LIST[BX+SI] PA=DS*16+BX+LIST+SI=11950H (3)MOV CH,[BX+SI] PA=DS*16+BX+SI=11700H (4)MOV DL,[BX+100H] PA=DS*16+BX+100H=11300H
(2)MOV AX,[1200H] 存储器直接寻址
(3)MOV BX,[SI]
存储器变址寻址
(4)MOV BX,[SI+1200]存储器相对变址寻址
(5)MOV [BX+SI],AL 寄存器寻址
(6)ADD AX,[BX+DI+20] 相对基址加变址寻址
(7)MUL BL
寄存器寻址
(8)JMP BX
段内调用:200AH
RET N等同下面两条指令 RET ADD SP,n
3.82 在执行中断返回指令IRET和过程(子程序)返回 指令RET时,具体操作内容有什么区别?
答:执行中断返回指令IRET时,具体操作内容为: (1)先将由SP所指定的堆栈内容弹出至IP,恢复IP 值。IP<-(SP),SP<-SP+2。 (2)再将由SP所指定的堆栈内容弹出至CS,恢复CS 值。CS<-(SP),SP<-SP+2 (3)最后将由SP所指定的堆栈内容弹出至FLAGS,恢 复FLAGS值。 FLAGS <-(SP),SP<-SP+2

第3章 8086(8088)CPU指令系统

第3章 8086(8088)CPU指令系统
11
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
3.存储器寻址(Memory Addressing)
4.1操作数寻址方式
存储器操作数的寻址方式中,数据都存放于存储单元中,指令操 作过程中需要BIU通过一个总线周期的访问,才能获取操作数。存储 器操作数的寻址方式是怎么计算出操作数的有效地址EA(Effective Address)。有效地址EA是三个地址量因子一个以上组合,由CPU执行 单元EU计算出来。
4.1操作数寻址方式
Relative -plus-Index Addressing)
有效地址是一个8/16位移量和一个基址与变址之和构成 EA=(BX/BP)+(SI/DI)+ DISP8/16
MOV AX,[BX+SI+10H] 操作如图所示
数据段 BX 20H 00H
3000H:0000H
注: ◆基址因子BP访问默认为堆栈段 ◆不能同时取两个基址因子;也不 能同时去两个变址因子
第3章 8086/8088CPU指令系统
3.1操作数寻址方式
3.2指令系统
1
第3章 8086/8088CPU指令系统
微机工作过程中其内部信息有两类: 一类是控制信息(指令); 一类是被加工处理的信息(数据)。
指令:微机中的控制信息就是使计算机进行某种 操作的命令,这些命令就称为指令。 指令系统:一台计算机所能执行的全部指令的集合称 为指令系统。不同的计算机其指令系统是不同的。
第3章 8086/8088CPU指令系统
4.1.4 操作数寻址方式
4.端口寻址(Port Addressing)
4.1操作数寻址方式
80X86系列CPU在访问外设时使用10根地址线A9-A0,其实际访问空 间为210=1K。根据通常书写习惯当高2为A9A8=00时,直接书写低8位, 可直接出现在指令格式中即端口的直接寻址;当A9A8≠00时,要按照 16为的数据书写,不能直接出现在指令格式中,要预先送到DX寄存器 中,即端口的间接寻址。 A 9 A 8 A7A6A5A4A3A2A1A0 0 0 X X X X X X X X 0 1 X X X X X X X X 1 0 X X X X X X X X 1 1 X X X X X X X X

8086指令系统精析(完整版)

8086指令系统精析(完整版)

第三章 8086指令系统3.1基本数据类型1.IA-32结构的基本数据类型是字节(8位)、字(16位)、双字(32位)、四字(64位,486中引入的)和双四字(128位,Pentium3中引入的)。

2.低字节占用内存中的最低地址,该地址也是此操作数的地址。

图:P44 图3-13.字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的地址,双字和四字的自然边界地址要分别能被4和8除尽。

4.数据结构要尽可能在自然边界上对齐5.对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访问,只要进行一次存储访问操作。

6.数字数据类型(学生自学)PPT3.28086的指令格式一、 指令格式Label(标号):mnemonic(助记符)argument1(参数1), argument2(参数2), argument3(参数3)其中:1.标号是一个标识符,后面跟有冒号2.助记符是一类具有相同功能的指令操作码的保留名3.操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取决于操作码4.操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程序的另一部分声明的赋予数据项的标识符。

5.在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数是目的。

例如:LOADREG: MOV AX, SUBTOTAL 功能是把由SUBTOTAL表示的源操作数传送至AX寄存器。

3.38086/8088指令的操作数寻址方式寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及I/O 端口中。

1. 立即数用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数。

立即数可以是8位或16位,立即数常用来给寄存器或内存单元赋初值。

例1 MOV AX , 2056H结果 ( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果 ( AL ) = 78H2. 寄存器操作数操作数在寄存器中,指令中指定寄存器名8 位操作数, 用 8 位寄存器: AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL16 位操作数,用 16 位寄存器: AX 、BX 、CX 、DX 、SP 、BP 、SI 、DICS 、DS 、SS 、ES例1 MOV AX , 2056H 执行后:(AX)=2056H 例2 MOV BL , AH 执行前:(BL) = 12H, (AH) = 78H 执行后:(BL) = 78H (AH) = 78H▲ 立即数寻址、寄存器寻址的操作数, 不用在取完指令后再到内存中取数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 指令系统
按功能分为:
•数据传送指令 •算术运算指令 •位处理指令(逻辑运算指令)
•串操作指令
•控制转移指令 •处理机控制指令
3.3 指令系统 控制转移类指令用于实现分支、循环、过程等程序结构,是 仅次于传送指令的常用指令 控制转移类指令通过改变IP(和CS)值,实现程 序执行顺序的改变 • 相对寻址方式 指令代码中提供目的地址相对于当前IP的位移量,转 移到的目的地址(转移后的IP值)就是当前IP值加上位 移量 • 直接寻址方式 指令代码中提供目的逻辑地址,转移后的CS和IP值直 接来自指令操作码后的目的地址操作数 • 间接寻址方式 指令代码中指示寄存器或存储单元,目的地址从寄存 器或存储单元中间接获得
例如: (SI)=0100H JMP SI 指令跳转到 CS:0100H执行。 34H 12H
Part1 JMP [BX] 例如,(BX)=100H,DS:0100H=1234H JMP [BX] 指令跳转到 CS:1234H执行。 Part2 1234H XXX Part3
CS:0100H
跳过1134H CS:1234H DS:0100H
代 码 段
实际编程时,汇编程序会根据目标地址的属 性,自动处理成短转移、近转移或远转移 程序员可用操作符short、near ptr 或far ptr 强制成为需要的转移类型
代 码 段
转移指令及寻址方式
五、程序转移指令—无条件转移和条件转移 无条件转移:
转移发生不需要状态信息, 执行JMP指令发生的转移。
转移指令及寻址方式
五、程序转移指令—无条件转移
1、JMP 指令 格式:JMP dest 功能:无条件转移到操作数(dest)所指示的地址,不影响标志。 •段内转移:
16位立即数
•直接转移 : JMP START
NERA 标号
(IP)←START
Part1 JMP1234H Part2 1234H XXX
例如: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
五、程序转移指令—条件转移
(5) MOV AL,[SI] (6) ADC AL,[DI] DAA
;AL=87H ;AL=0CCH ;AL=32H CF=0H
习题课
P143 7. 若CPU中各寄存器及RAM参数如题图所示,试求独立执行如下接 令后,CPU相应寄存器及RAM相应内存单元的内容是多少?
RAM CS DS SS ES IP DI SI 3000H 2050H 50A0H 0FFFH 0000H 000AH 0008H FFFFH 0004H 0000H 17C6H 8094H 1403H 1 CX BX SP DX AX BP CF 20506H 507H 508H 509H 50AH 50BH 50CH 执行前 06H 00H 87H 15H 37H C5H 2FH 执行后
(7) INC SI (8) MOV [DI],3 7. 若CPU中各寄存器及RAM参数如题图所示,试求独立执行如下接 令后,CPU相应寄存器及RAM相应内存单元的内容是多少?
RAM CS DS SS ES IP DI SI 3000H 2050H 50A0H 0FFFH 0000H 000AH 0008H FFFFH 0004H 0000H 17C6H 8094H 1403H 1 CX BX SP DX AX BP CF 20506H 507H 508H 509H 50AH 50BH 50CH 执行前 06H 00H 87H 15H 37H C5H 2FH 执行后
SF PF
OF
五、程序转移指令—条件转移 复杂转移:
由多个标志的状态决定的转移,分为有符号数和无符号数转移 •无符号数转移指令 比较两个无符号数,并根据比较结果转移 JA 标号 ;两数比较,高于则转移 (JNBE) JNA 标号 ;两数比较,不高于则转移(JBE) JB 标号 ;两数比较,低于则转移 (JNAE) JNB 标号 ;两数比较,不低于则转移(JAE) •有符号数转移指令 比较两个带符号数,并根据比较结果转移 JG 标号 ;两数比较,大于则转移 (JNLE) JNG 标号 ;两数比较,不大于则转移(JLE) JL 标号 ;两数比较,小于则转移 (JNGE) JNL 标号 ;两数比较,不小于则转移(JGE)
习题课
P143 6. 根据以下要求写出相应80X86汇编语言指令 ① 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中. ② 用寄存器BX和偏移量为0B42H的寄存器相对寻址方式把存诸 器中的一个字和(CX)相加,并把结果送回存储器中。 ③ 用寄存器BP和SI的基址加变址寻址方式求得的存储器字操作 数和AX累加器内容相加,并结结果送入AX寄存器中。
(3) MOV CX,BX (4) TEST AX,01
;CX=04H
BX=04H
;AX=8094H CF=0H
习题课
P143 7. 若CPU中各寄存器及RAM参数如题图所示,试求独立执行如下接 令后,CPU相应寄存器及RAM相应内存单元的内容是多少?
RAM CS DS SS ES IP DI SI 3000H 2050H 50A0H 0FFFH 0000H 000AH 0008H FFFFH 0004H 0000H 17C6H 8094H 1403H 1 CX BX SP DX AX BP CF 20506H 507H 508H 509H 50AH 50BH 50CH 执行前 06H 00H 87H 15H 37H C5H 2FH 执行后
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)执行
Part1
JMP 12H
Part2
CS:1220H
12H+2H=14H
CS:1234H
XXXXX
Part3 Part3 XXXXX
CS:1224H 2H—12H=—10H CS:1234H
Part2
JMP —12H Part1
五、程序转移指令—无条件转移
•段内转移: •间接转移 :JMP DEST——DEST为 16寄存器或内存操作数 •执行操作:(IP)←DEST
五、程序转移指令—循环控制
•测试CX的值为0则转移
JCXZ 标号 ; (CX)=0则转移 •循环控制指令 CX计数循环次数,每循环一次CX← CX-1 •无条件循环 LOOP •条件循环 LOOP Z 标号 标号
CX≠0 转移到标号继续循环, CX=0顺序执行。
CX≠0且 ZF=1转移到标号继续循环,
IP=1234H
五、程序转移指令—无条件转移 •段间转移: •直接转移 : JMP DEST
例如:
JMP 1234:5678H 指令跳转到 1234:5678H执行
32位立即数 32内存操作数
FAR 标号
(IP)←低16位
(CS)←高16位
78H 56H 34H 12H
DS:0200H
IP=5678H CS=1234H
五、程序转移指令—处理器控制 •同步控制
HLT 暂定指令CPU处于空操作状态,以下三种情况可以使CPU脱 离暂定状态。 •RESET •NMI •当IF=1时INTR •该指令是为中断等待而设。 NOP 空操作指令,进行一个总线周期的空操作,相当于延时4T时 钟周期。 ESC OPCODE ,SRC 交权指令, 把控制权交给协处理器。 OPCODE~6位立即数,外部处理器操作指令。 SRC~外部处理器的内存源操作数,由8086取出放在数据总线上 供外部理器操作。
• 段内转移——近转移(near) 在当前代码段64KB范围内转移( ±32KB范 围)不需要更改CS段地址,只要改变IP偏移地址 • 段内转移——短转移(short) 转移范围可以用一个字节表达,在段内-128 ~+127范围的转移
代 码 段
• 段间转移——远转移(far) 从当前代码段跳转到另一个代码段,可 以在1MB范围 需要更改CS段地址和IP偏移地址,目标 地址必须用一个32位数表达,叫做32位远 指针,它就是逻辑地址
DF标志 CLD DF=0 STD DF=1
IF标志 CLI IF=0 STI IF=1
•同步控制 WAIT 指令——CPU处于空操作状态,每5个T周期测试信号线TEST 当为低电平时脱离WAIT
LOCK 指令前缀, 在执行有LOCK指令时发出总线封锁信号, LOCK
禁止其它主控设备申请总线。
例如
LOCK MOV AX,BX
条件转移都是短转移,转移距离只能在(-128~+127)内完成。 简单转移:条件是由标志寄存器中的标志的状态决定的转移。 复杂转移:条件是由有有符号数和无符号数的大小决定的转移。 •简单转移: CF ZF
FR
JC 标号 CF=1有进位则转移到标号所在地址 JNC 标号 CF=0无进位则转移到标号所在地址 JZ 标号 ZF=1结果为零则转移到标号所在地址 JNZ 标号 ZF=0结果为非零则转移到标号所在地址 JS 标号 SF=1 结果为负则转移到标号所在地址 JNS 标号 SF=0 结果非负则转移到标号所在地址 JP 标号 PF=1结果1的个数为偶数个则转移 JNP 标号 PF=0 结果1的个数为奇数个则转移 JO 标号 OF=1结果溢出则转移到标号所在地址 JNO 标号 OF=0结果未溢出则转移到标号所在地址
相关文档
最新文档