《8086指令系统》由会员分享,可在线阅读,更多相关《8086指令系统(14页珍藏版)》请在金锄头文库上搜索。
1、通用寄存器: 数据寄存器:累加器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称为累加
2、器,使用程度最高,用于算术,逻辑运算及与外设传送信息等;BX称为基地址寄存器,常用做存放存储器的地址;CX称为计数器,作为循环和串操作等指今中隐含的计数器;DX称为数据寄存器,常用来存放双字节长数据的高16位,或存放外设端口地址.指针及变址寄存器指针及变址寄存器包括SI,DI,BP,SP四个16位寄存器,常用于存储器寻址时提供地址.SI源变址寄存器,DI目的变址寄存器,一般与DS联用确定数据段中某一存储单元地址.SP堆栈指针寄存器,指示栈顶的偏移地址;BP基址指针寄存器, 表示堆栈段中的基地址.IP16位指令指针寄存器,指示代码段中指令的偏移地址,它与代码段寄存器CS 联用,以确定下一条指令的
3、物理地址.处理器利用CS:IP取得下一条要执行的指令,然后修改IP的内容,使之指向下一条指令的存储器地址.标志寄存器(FLAGS) 也称为状志标志寄存器PSW0 CF(Carry Flag) 进位标志12 PF(Parity Flag)零标志34 AF(Auxiliary Carry Flag)辅助进位标志56 ZF(Zero Flag)零标志7 SF(Sign Flag)符号标志:运算结果最高有效位的状态就是符号位的状态.8 TF(Trap Flag)陷井标志9 IF(Interrupt-enable Flag)中断允许标志10 DF(Direction Flag)方向标志11 OF(Ove
4、rflow Flag)溢出标志12131415状态标志:CF,ZF,SF,PF,OF,AF控制标志:DF,IF,TF8086的字长是16位的,但其地址线是32位的.8086处理器将1M存储器空间分成许多逻辑段(Segment),每个段的最大限为16KB. 这样,每个存储单元就可以用段地址:段内偏移地址表达其准确的物理位置.段地址:偏移地址的形式称为 逻辑地址 .将逻辑地址中的段地址左移4位(这是对二进制而言,若是十六进制,只要左移一位),加上偏移地址就得到20位物理地址. 例如逻辑地址1460H:100H表示物理地址14700H, 同一个物理地址可以有多个逻辑地址形式.8位通用寄存器AH/AL
5、/BH/BL/CH/CL/DH/DL16位的通用寄存器AX/BX/CX/DX.DST 目的操作数SRC 源操作数一. 通用数据传送指令1. 传送指令 MOV (move)格式:MOV DST,SRC操作:(DST)(SRC) 将原操作数(字节或字)传送到目的地址。操作数要求:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。对标志位的影响:不影响标志位。指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;不能同时为存储器操作数,源操作数SRC立即数方式,目的操作数DST不能是段寄存器,IP.CS不能作为目标操作数。2. 进栈指令 PUSH (push on
6、to 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. 交换
7、指令 XCHG (exchange)格式:XCHG OPR1,OPR2操作:(OPR1)(OPR2)操作数要求:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。指令对标志位的影戏:不影响标志位。指令的特殊要求:不允许使用段寄存器。二. 累加器专用传送指令4. 输入指令 IN (input) 输出指令 OUT (output)格式:IN ac,port port0FFHIN ac,DX port0FFH OUT port,ac port0FFH OUT DX,ac port0FFH操作:对8086及其后继机型的微处理机,所有I/O端口与CPU之间的通信都由输入输出指令IN和OUT来
8、完成。IN指令将信息从I/O输入到CPU,OUT指令将信息从CPU输出到I/O端口,因此,IN和OUT指令都要指出I/O端口地址。IN ac,port port0FFH (AL)(port)传送字节 或 (AX)(port+1,port)传送字IN ac,DX port0FFH (AL)(DX)传送字节 或 (AX)(DX)+1,(DX)传送字OUT port,ac port0FFH (port)(AL)传送字节 或 (port+1,port)(AX)传送字OUT DX,ac port0FFH (DX)(AL)传送字节 或 (DX)+1,(DX)(AX)传送字对标志位的影响:不影响标志位。指令
9、的特殊要求:只限于在AL或AX与I/O端口之间传送信息。 传送16位信息用AX,传送8位信息用AL,这取决于外设端口的宽度。5. 换码指令 XLAT (translate)格式:XLAT opr 或 XLAT操作: 这条指令根据AL寄存器提供的位移量,将BX指示的字节表格中的代码换存在AL中。BX代表表格首地址,AL为表内位移量,BX+AL偏移地址送给AL。 (AL)(DS)*10H+(BX)+(AL)对标志位的影响:不影响标志位。指令的特殊要求:所建字节表格的长度不能超过256字节,因为存放位移量的是8位寄存器AL。opr为表格的首地址,因为opr所表示的偏移地址已存入BX寄存器,所以opr
10、在换码指令中可有可无,有则提高程序的可读性。三. 地址传送指令6. 有效地址传送器 LEA (load effective address)格式:LEA reg,src操作:LEA指令把源操作数的有效地址送到指定的寄存器,这个有效地址是由src选定的一种存储器寻址方式确定的。操作数要求:各种存储器寻址方式。对标志位的影响:不影响标志位。指令的特出要求:指令中reg不能是段寄存器;7. 指针送寄存器和DS LDS (load DS with point)指针送寄存器和ES LES (load ES with point)格式:LDS reg,src LES reg,src操作:LDS和LES指令
11、把确定内存单元位置的偏移地址送寄存器,段地址DS或ES。这个偏移地址和段地址(也称地址指针)是由src指定的两个相继字单元提供的。 LDS reg,src (reg)(src) (DS)(src+2) LES reg,src (reg)(src) (ES)(src+2)操作数要求:src必须为存储器寻址方式对标志位的影响:不影响标志位。指令的特殊要求:指令中REG不能是段寄存器;四. 标志寄存器传送指令8. 标志寄存器的低字节送AH LAHF (load AH with FLAGS)格式:LAHF操作:(AH)(FLAGS)0-7对标志位的影响:不影响标志位9. AH送标志寄存器低字节 SAH
12、F(store AH into FLAGS)格式:SAHF操作:(FLAGS)0-7(AH)对标志位的影响:由装入值来确定标志位的值。10. 标志进栈 PUSHF (push the flags)格式:PUSHF操作:(SP)(SP)-2 (SP)+1,(SP)(FLAGS)0-15对标志位的影响:不影响标志位。11. 标志出栈 POPF (pop the FLAGES)格式:POPF操作:(FLAGS)0-15(SP)+1,(SP) (SP)(SP)+2对标志位的影响:由装入值来确定标志位的值。算术指令一. 加法指令12. 加法指令 ADD (addition)格式:ADD dst,src操
13、作:(dst)(src)+(dst)操作数要求:他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。对标志位影响:SF=1 加法结果为负数(符号位为1) SF=0 加法结果为正数(符号位为0) ZF=1 加法结果为零 ZF=0 加法结果不为零 CF=1 最高有效位向高位有进位 CF=0 最高有效位向高位无进位 OF=1 两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反。 OF=0 两个不同符号数相加,或同符号数相加,结果符号与其相同。13. 带进位加法指令 ADC (add with carry)格式:ADD dst
14、,src操作:(dst)(src)+(dst)+CF操作数要求:他们两个操作数不能同时为存储器寻址。即除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。对标志位的影响:SF=1 加法结果为负数 SF=0 加法结果为正数 ZF=1 加法结果为零 ZF=0 加法结果不为零 CF=1 最高有效位向高位有进位 CF=0 最低有效位相高位无进位 OF=1 两个同符号数相加,结果符号与其相反, OF=0 两个同符号数相加,或同符号相加,结果符号与其相同14. 加1指令 INC (increament)格式:INC opr操作:(opr)(opr)+1操作数要求 可以使用除立即数方式外的任何寻址方式对标志