8086指令系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通用寄存器:

数据寄存器:累加器AX,基址寄存器BX,计数器CX,数据寄存器DX

变址寄存器:源地址寄存器SI,目的变址寄存器DI

指针寄存器:基址指针BP,堆栈指针SP

段寄存器:

代码段寄存器CS,堆栈段寄存器SS,数据段寄存器DS,附加段寄存器ES

标志寄存器:FLAGS,指令指针:IP

数据寄存器

8086有4个16位数据寄存器:AX,BX,CX,DX;它们都可以分为两个独立的8位寄存器:AH/AL,BH/BL,CH/CL,DH/DL;对其中的某8位操作,并不影响另外对应8 位寄存器的数

据.数据寄存器是通用的,用来存放计算结果和操作数, 但每个寄存器又有它们各自专用目的,主要是:

AX称为累加器,使用程度最高,用于算术,逻辑运算及与外设传送信息等;

BX称为基地址寄存器,常用做存放存储器的地址;

CX称为计数器,作为循环和串操作等指今中隐含的计数器;

DX称为数据寄存器,常用来存放双字节长数据的高16位,或存放外设端口地址.

指针及变址寄存器

指针及变址寄存器包括SI,DI,BP,SP四个16位寄存器,常用于存储器寻址时提供地址.SI源变址寄存器,DI 目的变址寄存器,一般与DS联用确定数据段中某一存储单元地址.SP堆栈指针寄存器,指示栈顶的偏移地址;BP基址指针寄存器, 表示堆栈段中的基地址.IP16位指令指针寄存器,指示代码段中指令的偏移地址,它与代码段寄存器CS 联用,以确定下一条指令的物理地址.处理器利用CS:IP取得下一条要执行的指令,然后修改IP的内容,使之指向下一条指令的存储器地址.

标志寄存器(FLAGS) 也称为状志标志寄存器PSW

0 CF(Carry Flag) 进位标志

1

2 PF(Parity Flag)零标志

3

4 AF(Auxiliary Carry Flag)辅助进位标志

5

6 ZF(Zero Flag)零标志

7 SF(Sign Flag)符号标志:运算结果最高有效位的状态就是符号位的状态.

8 TF(Trap Flag)陷井标志

9 IF(Interrupt-enable Flag)中断允许标志

10 DF(Direction Flag)方向标志

11 OF(Overflow Flag)溢出标志

12

13

14

15

状态标志:CF,ZF,SF,PF,OF,AF

控制标志:DF,IF,TF

8086的字长是16位的,但其地址线是32位的.

8086处理器将1M存储器空间分成许多逻辑段(Segment),每个段的最大限为16KB. 这样,每个存储单元就可以用"段地址:段内偏移地址"表达其准确的物理位置."段地址:偏移地址"的形式称为逻辑地址 .将逻辑地址中的段地址左移4位(这是对二进制而言,若是十六进制,只要左移一位),加上偏移地址就得到20位物理地址. 例如逻辑地址"1460H:100H"表示物理地址14700H, 同一个物理地址可以有多个逻辑地址形式.

8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DL

16位的通用寄存器AX/BX/CX/DX.

DST 目的操作数

SRC 源操作数

一. 通用数据传送指令

1. 传送指令MOV (move)

格式:MOV DST,SRC

操作:(DST)←(SRC) 将原操作数(字节或字)传送到目的地址。

操作数要求:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

对标志位的影响:不影响标志位。

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;不能同时为存储器操作数,源操作数SRC立即数方式,目的操作数DST不能是段寄存器,IP.CS不能作为目标操作数。

2. 进栈指令PUSH (push onto the stack)

出栈指令POP (pop from the stack)

格式:PUSH SRC;POP DST

操作:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSH SRC (SP)←(SP)-2 ;(SP)←(SRC)

POP DST (DST)←((SP));(SP)←(SP)

操作数要求:push 和pop指令不能使用立即数寻址方式。

对标志位的影响:PUSH 和POP指令都不影响标志位。

指令的特殊要求:PUSH 和POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者-2;POP指令的目的操作数DST不允许是CS寄存器;

3. 交换指令XCHG (exchange)

格式:XCHG OPR1,OPR2

操作:(OPR1)←→(OPR2)

操作数要求:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

指令对标志位的影戏:不影响标志位。

指令的特殊要求:不允许使用段寄存器。

二. 累加器专用传送指令

4. 输入指令IN (input)

输出指令OUT (output)

格式:IN ac,port port≤0FFH

IN ac,DX port>0FFH

OUT port,ac port≤0FFH

OUT DX,ac port>0FFH

操作:对8086及其后继机型的微处理机,所有I/O端口与CPU之间的通信都由输入输出指令IN和OUT 来完成。IN指令将信息从I/O输入到CPU,OUT指令将信息从CPU输出到I/O端口,因此,IN和OUT 指令都要指出I/O端口地址。

IN ac,port port≤0FFH (AL)←(port)传送字节或(AX)←(port+1,port)传送字

IN ac,DX port>0FFH (AL)←((DX))传送字节或(AX)←((DX)+1,(DX))传送字

OUT port,ac port≤0FFH (port)←(AL)传送字节或(port+1,port)←(AX)传送字

OUT DX,ac port>0FFH (DX)←(AL)传送字节或((DX)+1,(DX))←(AX)传送字

对标志位的影响:不影响标志位。

指令的特殊要求:只限于在AL或AX与I/O端口之间传送信息。

传送16位信息用AX,传送8位信息用AL,这取决于外设端口的宽度。

相关文档
最新文档