8086的指令集

一、数据传输指令

     ①通用数据传输指令      

      1、传送指令MOV

                    MOV   目的操作数,源操作数
                    注意: 目的操作数和源操作数不能是IP寄存器、类型必须相同,不可以同时为段寄存器
                              不允许在两个存储单元中直接传送数据
                              目的操作数不允许是立即数
                              立即数不允许直接送入段寄存器

       2、进栈指令PUSH

                    PUSH  源操作数

       3、出栈指令POP

                   POP  目的操作数

       4、交换指令XCHG

                   XCHG  目的操作数,源操作数

                   注意:操作数不能为立即数、段寄存器

                             目的操作数和源操作数不能同时为存储单元(得是寄存器)

     ②累加器(即AX或AL)专用传输指令

       1、输入指令IN

                    IN  AL,n/DX

                    IN  AX,n/DX

       2、输出指令OUT

                    OUT  AL,n/DX

                    OUT  AX,n/DX

       3、换码指令XLAT

                   XLAT  

                   注意:执行该指令前需先执行  : MOV  BX,换码表的偏移首地址

                                                                      MOV  AL,被转换码      

     ③目标地址传输指令          

        1、LEA(有效地址传输到寄存器)

                    LEA  16位寄存器,源操作数偏移地址         ;将源操作数偏移地址放入寄存器

        2、LDS(装入一个新的物理地址)

                    LDS  16位寄存器,源操作数偏移地址         ;将源操作数偏移地址放入寄存器,偏移地址加2放入DS

        3、LES(装入一个新的物理地址)

                    LES  16位寄存器,源操作数偏移地址         ;将源操作数偏移地址放入寄存器,偏移地址加2放入ES

     ④标志寄存器传送指令

        1、LAHF:将FR寄存器的低八位放入AH

        2、SAHF:将AH放入FR寄存器的低八位

        3、PUSHF:将FR寄存器推入堆栈中

        4、POPF:将堆栈栈顶弹如FR

二、算术运算指令

     ①算术加法指令      

      1、算术加法ADD

                    ADD   目的操作数,源操作数
                    功能:目的操作数<——目的操作数+源操作数

                    注意: 目的操作数不能立即寻址
                              加法操作中产生进位影响CF标志
                              带符号数相加要考虑溢出

       2、带进位算术加法ADC(多字节相加时使用(大于2字节))

                    ADC   目的操作数,源操作数

                    功能:目的操作数<——目的操作数+源操作数+CF

                    注意:目的操作数不能立即寻址

                              加法操作中产生进位影响CF标志
                              带符号数相加要考虑溢出

       3、加1指令INC

                    INC   目的操作数

                    功能:目的操作数<——目的操作数+I

                    注意:目的操作数不能立即寻址

                              加法操作中产生进位 影响CF标志
                              带符号数相加要考虑溢出

     ②算术减法指令

       1、算术减法SUB

                    SUB   目的操作数,源操作数

                    功能:目的操作数<——目的操作数-源操作数

                    注意:目的操作数不能立即寻址

                              减法操作中产生借位影响CF标志

                              带符号数相减要考虑溢出

                              无符号数相减,若CF=1,则结果为补码

       2、带进位算术加法SBB(多字节相加减使用(大于2字节))

                    ADC   目的操作数,源操作数

                    功能:目的操作数<——目的操作数-源操作数-CF

                    注意:目的操作数不能立即寻址

                              减法操作中产生进位影响CF标志

                              带符号数相减要考虑溢出

                              无符号数相减,若CF=1,则结果为补码

       3、减1指令DEC

                    DEC   目的操作数

                    功能:目的操作数<——目的操作数-I

                    注意:目的操作数不能立即寻址

                              加法操作中产生进位影响CF标志

                              操作数为内存寻址时必须使用伪指令  如DEC WORD PTR[BX]

       4、比较指令CMP

                    CMP   目的操作数,源操作数

                    功能:仅影响标志位,不产生结果

                    注意:目的操作数不能立即寻址

                              目的操作数和元操作数不能同时为存储器操作数

     ③算术乘法指令          

      1、无符号数乘法指令MUL

                    MUL   源操作数
                    功能:AX+DX/AX<——AX/AL存的数*源操作数

                    注意: 操作数不能立即寻址
                              AL*BL放入AX
                              AX*BX放入DX和AX

       2、带符号数乘法指令IMUL(多字节相加时使用(大于2字节))

                    MUL   源操作数

                    功能:AX+DX/AX<——AX/AL存的数*源操作数

                    注意:操作数不能立即寻址

                              AL*BL放入AX

                              AX*BX放入DX和AX

                              有符号数再计算机中是其补码,用MUL计算结果有错,IMUL会对符号数处理

     ④标志寄存器传送指令

        1、LAHF:将FR寄存器的低八位放入AH

        2、SAHF:将AH放入FR寄存器的低八位

        3、PUSHF:将FR寄存器推入堆栈中

        4、POPF:将堆栈栈顶弹如FR


二、算术运算指令
三、位操作指令
四、串处理指令
五、程序控制转移指令
六、处理器控制指令
                    功能: 目的操作数<——目的操作数+源操作数+CF

猜你喜欢

转载自blog.csdn.net/qq_36488756/article/details/80693661