• 汇编指令介绍


    8086汇编指令主要有以下几种:

    1、数据传输指令

    2、算术运算指令

    3、逻辑运算指令

    4、串指令

    5、程序转移指令

    6、伪指令

    -----------------------------------------------------------------------------------------------------------------------

    具体介绍各种指令的含义:

    一、数据传输指令:它们在存储器和寄存器、寄存器和输入输出端口之间传送数据

    a、通用数据传送指令

    MOV    传送字或字节

    MOVSX  先符号扩展,再传送 

    MOVZX     先零扩展,再传送

    PUSH   把字压入堆栈

    POP   把字弹出堆栈

    PUSHA   把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈

    POPA   把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈

    PUSHAD   把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈

    POPAD   把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈

    BSWAP   交换32位寄存器里字节的顺序

    XCHG   交换字或字节( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

    CMPXCHG比较并交换操作数( 第二个操作数必须为累加器AL/AX/EAX )

    XADD   先交换再累加

    XLAT    字节查表转换

    b、输入输出端口传送指令

    IN       I/O端口输入   ( 语法: IN 累加器, {端口号│DX} )

    OUT   I/O端口输出   ( 语法: OUT {端口号│DX},累加器 )

    输入输出端口由立即方式指定时, 其范围是0--255

          由寄存器DX指定时,其范围是0--65535

    c、目的地址传送指令

    LEA   装入有效地址              例: LEA DX,string ;把偏移地址存到DX.

    LDS   传送目标指针,把指针内容装入DS      例: LDS SI,string ;把段地址:偏移地址存到DS:SI.

    LES   传送目标指针,把指针内容装入ES  例: LES DI,string ;把段地址:偏移地址存到ES:DI.

    LFS    传送目标指针,把指针内容装入FS

    LGS   传送目标指针,把指针内容装入GS

    LSS    传送目标指针,把指针内容装入SS

    d、标志传送指令

    LAHF    标志寄存器传送,把标志装入AH

    SAHF    标志寄存器传送,把AH内容装入标志寄存器

    PUSHF     标志入栈

    POPF    标志出栈

    PUSHD       32位标志入栈

    POPD         32位标志出栈

    ----------------------------------------------------------------------------------------------------------------------------

    二、算术运算指令:算术运算与逻辑指令负责执行数学运算与逻辑功能,执行此类指令除了能得到响应的结果外,部分指令还会改变标志位,从而对控制转移类指令的执行产生影响,进而控制程序流程与逻辑

    ADD       加法

    ADC       带进位加法

    INC      加1

    SUB     减法

    DEC        减1

    NEC        求反(以0减之)

    CMP     比较(两操作数作减法,仅修改标志位,不回送结果)

    MUL     无符号乘法

    IMUL       整数乘法

    以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算)

    DIV               无符号除法

    IDIV    整数除法

    以上两条,结果回送:商回送AL,余数回送AH, (字节运算); 或 商回送AX,余数回送DX, (字运算)

    CBW     字节转换为字  (把AL中字节的符号扩展到AH中去)

    CWD     字转换为双字  (把AX中的字的符号扩展到DX中去)

    CWDE     字转换为双字   (把AX中的字符号扩展到EAX中去)

    CDQ    双字扩展    (把EAX中的字的符号扩展到EDX中去)

    ------------------------------------------------------------------------------------------------------------------------------

     三、逻辑运算指令

    AND    与运算

    OR      或运算

    XOR    异或运算

    NOT    取反

    TEST     测试(两操作数作与运算,仅修改标志位,不回送结果).

    SHL     逻辑左移

    SAL     算术左移(=SHL)

    SHR    逻辑右移

    SAR    算术右移(=SHR)

    ROL    循环左移

    ROR    循环右移

    RCL     通过进位的循环左移

    RCR    通过进位的循环右移

    ----------------------------------------------------------------------------------------------------------------------------------

    四、串操作指令:被用于操作某一内存区域中由相同类型数据构成的一个整体(相当于一个数组),这种结构一般被用于保存字符串或其他连续存放的单一类型数据

    MOVS   串传送

    STOS    保存串(是LODS的逆过程.)

    SCAS      串扫描

    CMPS   串比较

    LODS    装入串(把源串中的元素(字或字节)逐一装入AL或AX中)

    REP      重复操作前缀

    ----------------------------------------------------------------------------------------------------------------------------------

    五、程序转移指令:控制转移指令负责控制程序执行流程,它们一般会导致当前指令的执行轨迹发生改变,或执行调用子程序的功能

    1> 无条件转移指令(长转移)

    JMP     无条件转移指令

    CALL   过程调用

    RET     过程返回

    2> 条件转移指令(短转移,-128到+127的距离内)

    3> 循环控制指令 (短转移)

    LOOP CX        不为零时循环.
    LOOPE/LOOPZ CX      不为零且标志Z=1时循环.
    LOOPNE/LOOPNZ CX   不为零且标志Z=0时循环.
    JCXZ CX         为零时转移.
    JECXZ ECX          为零时转移.

    4> 中断指令

    INT   中断指令

    INTO   溢出中断

    IRET   中断返回

    5> 处理器控制指令

    HLT     处理器暂停, 直到出现中断或复位信号才继续.
    WAIT   当芯片引线TEST为高电平时使CPU进入等待状态.
    ESC    转换到外处理器.
    LOCK     封锁总线.
    NOP    空操作.
    STC    置进位标志位.
    CLC    清进位标志位.
    CMC   进位标志取反.
    STD    置方向标志位.
    CLD    清方向标志位.
    STI     置中断允许位.
    CLI      清中断允许位.

    ---------------------------------------------------------------------------------------------------------------------------------

    六、伪指令:是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。

    DW    定义字

    PROC  定义过程

    ENDP  过程结束

    SEGMENT 定义段

    ASSUME 建立段寄存器寻址

    ENDS   段结束

    END   程序结束

    参考资料:https://blog.csdn.net/qq_36215315/article/details/79879391

  • 相关阅读:
    页面上一些小icon的制作方法及技术选择
    移动端h5页面touch事件与点击穿透问题
    浅析 jquerydom操作方法--remove(),detach(),empty()
    jquery中attr和prop的区别
    正则表达式的基本入门
    浏览器对中文标点符号折行的处理差异
    关于阴影:box-shadow
    ubuntu nginx ftp 配置图片服务器
    ubuntu 18 安装ftp 并远程配置访问用户
    WIn10系统软件默认安装c盘后消失看不见问题
  • 原文地址:https://www.cnblogs.com/forestsky/p/10902663.html
Copyright © 2020-2023  润新知