8086指令系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,这取决于外设端口的宽度。