Logo
x86 汇编指令的解释以及它们的缩写含义

以下是一些常见的 x86 汇编指令的解释以及它们的缩写含义,这些缩写有助于理解和记忆指令的用途:

数据传输类指令

  1. MOV (Move)

    • 含义: 将源操作数的数据复制到目标操作数中。
    • 缩写: MOV 代表 “Move”(移动),尽管是复制而非移动。
  2. PUSH (Push onto stack)

    • 含义: 将操作数压入栈中,rsp 栈指针会减小。
    • 缩写: PUSH 代表 “Push”(压入)。
  3. POP (Pop from stack)

    • 含义: 从栈中弹出数据到目标操作数,rsp 栈指针会增加。
    • 缩写: POP 代表 “Pop”(弹出)。
  4. LEA (Load Effective Address)

    • 含义: 计算一个有效地址并将其加载到寄存器中,不进行内存访问。
    • 缩写: LEA 代表 “Load Effective Address”(加载有效地址)。
  5. XCHG (Exchange)

    • 含义: 交换两个操作数的内容。
    • 缩写: XCHG 代表 “Exchange”(交换)。

算术运算类指令

  1. ADD (Addition)

    • 含义: 将两个操作数相加,结果存储在目标操作数中。
    • 缩写: ADD 代表 “Add”(加法)。
  2. SUB (Subtraction)

    • 含义: 从目标操作数中减去源操作数,结果存储在目标操作数中。
    • 缩写: SUB 代表 “Subtract”(减法)。
  3. MUL (Multiply)

    • 含义: 无符号乘法,乘法结果放在指定寄存器中。
    • 缩写: MUL 代表 “Multiply”(乘法)。
  4. DIV (Division)

    • 含义: 无符号除法,结果为商和余数,存放在寄存器中。
    • 缩写: DIV 代表 “Divide”(除法)。
  5. INC (Increment)

    • 含义: 将操作数增加1。
    • 缩写: INC 代表 “Increment”(递增)。
  6. DEC (Decrement)

    • 含义: 将操作数减去1。
    • 缩写: DEC 代表 “Decrement”(递减)。

逻辑运算类指令

  1. AND (Logical AND)

    • 含义: 对两个操作数执行按位与运算。
    • 缩写: AND 代表 “AND”(与运算)。
  2. OR (Logical OR)

    • 含义: 对两个操作数执行按位或运算。
    • 缩写: OR 代表 “OR”(或运算)。
  3. XOR (Logical Exclusive OR)

    • 含义: 对两个操作数执行按位异或运算。
    • 缩写: XOR 代表 “Exclusive OR”(异或)。
  4. NOT (Logical NOT)

    • 含义: 对操作数执行按位取反。
    • 缩写: NOT 代表 “NOT”(非运算)。
  5. SHL (Shift Left)

    • 含义: 将操作数向左移动指定的位数,右边用0填充。
    • 缩写: SHL 代表 “Shift Left”(左移)。
  6. SHR (Shift Right)

    • 含义: 将操作数向右移动指定的位数,左边用0填充。
    • 缩写: SHR 代表 “Shift Right”(右移)。

控制流类指令

  1. JMP (Jump)

    • 含义: 无条件跳转到指定的标签位置。
    • 缩写: JMP 代表 “Jump”(跳转)。
  2. CALL (Call subroutine)

    • 含义: 调用子程序,将返回地址压入栈。
    • 缩写: CALL 代表 “Call”(调用)。
  3. RET (Return from subroutine)

    • 含义: 从子程序返回,弹出栈顶的地址到 IP(指令指针)。
    • 缩写: RET 代表 “Return”(返回)。
  4. CMP (Compare)

    • 含义: 比较两个操作数,将结果影响标志寄存器,但不修改操作数。
    • 缩写: CMP 代表 “Compare”(比较)。
  5. JE (Jump if Equal)

    • 含义: 如果前一条 CMP 指令比较结果为等于,则跳转。
    • 缩写: JE 代表 “Jump if Equal”(等于时跳转)。
  6. JNE (Jump if Not Equal)

    • 含义: 如果 CMP 指令比较结果为不等于,则跳转。
    • 缩写: JNE 代表 “Jump if Not Equal”(不等时跳转)。
  7. JZ (Jump if Zero)

    • 含义: 如果零标志(ZF)被置位(即结果为0),则跳转。
    • 缩写: JZ 代表 “Jump if Zero”(零时跳转)。
  8. JNZ (Jump if Not Zero)

    • 含义: 如果零标志(ZF)未置位(即结果不为0),则跳转。
    • 缩写: JNZ 代表 “Jump if Not Zero”(非零时跳转)。

系统操作类指令

  1. NOP (No Operation)

    • 含义: 什么也不做,但占用一个 CPU 时钟周期。
    • 缩写: NOP 代表 “No Operation”(无操作)。
  2. HLT (Halt)

    • 含义: 停止处理器执行,直到发生中断。
    • 缩写: HLT 代表 “Halt”(停止)。

帮助记忆的方法

熟练使用这些缩写和理解它们的功能,会帮助你更好地理解和编写汇编代码。