x86 架构下一些常用的汇编指令英文全称与功能简述

汇编语言中的汇编指令众多,以下列举 x86 架构下一些常见的汇编指令:

指令类别 指令 英文全称 功能简述
数据传送 MOV Move 将源操作数复制到目标操作数
LEA Load Effective Address 加载有效地址到指定寄存器
PUSH Push onto the stack 将操作数压入堆栈
POP Pop from the stack 从堆栈弹出操作数到指定位置
算术运算 ADD Addition 加法运算
SUB Subtraction 减法运算
MUL Multiply 无符号乘法运算
IMUL Integer Multiply 有符号乘法运算
DIV Divide 无符号除法运算
IDIV Integer Divide 有符号除法运算
逻辑运算 AND Logical AND 逻辑与运算
OR Logical OR 逻辑或运算
XOR Exclusive OR 逻辑异或运算
NOT Logical NOT 逻辑非运算
控制转移 JMP Jump 无条件跳转
JZ Jump if Zero 结果为零则跳转
JNZ Jump if Not Zero 结果不为零则跳转
CALL Call a subroutine 调用子程序
RET Return from a subroutine 从子程序返回
串操作 MOVS Move String 移动字节串 / 字串
CMPS Compare String 比较字节串 / 字串
SCAS Scan String 扫描字节串 / 字串中的特定值
处理器控制 CLC Clear Carry Flag 清除进位标志位
STC Set Carry Flag 设置进位标志位
CLI Clear Interrupt - Enable Flag 清除中断允许标志位
STI Set Interrupt - Enable Flag 设置中断允许标志位

这只是汇编指令的一部分,实际上还有如循环控制指令(LOOP 等)、位操作指令(如 SHL - Shift Left 等)等许多其他指令,并且不同的汇编器和 CPU 架构也会有一些特殊指令。

以下是一些更多的汇编语言指令

指令类别 指令 英文全称 功能描述
数据传送 MOVSX Move with Sign - extension 将源操作数传送到目标操作数,同时进行符号扩展
MOVZX Move with Zero - extension 将源操作数传送到目标操作数,同时进行零扩展
算术运算 INC Increment 将操作数的值加 1
DEC Decrement 将操作数的值减 1
NEG Negate 求操作数的相反数
逻辑运算 TEST Test 对两个操作数进行逻辑与操作,但不保存结果,只设置标志位
SHL Shift Left 将操作数左移指定的位数
SHR Shift Right 将操作数右移指定的位数,无符号数逻辑右移
SAR Shift Arithmetic Right 将操作数算术右移指定的位数,用于有符号数
ROL Rol 循环左移操作数
ROR Rot Right 循环右移操作数
控制转移 JA Jump if Above 当无符号数比较结果为大于时跳转
JAE Jump if Above or Equal 当无符号数比较结果为大于等于时跳转
JB Jump if Below 当无符号数比较结果为小于时跳转
JBE Jump if Below or Equal 当无符号数比较结果为小于等于时跳转
JG Jump if Greater 当有符号数比较结果为大于时跳转
JGE Jump if Greater or Equal 当有符号数比较结果为大于等于时跳转
JL Jump if Less 当有符号数比较结果为小于时跳转
JLE Jump if Less or Equal 当有符号数比较结果为小于等于时跳转
LOOP Loop 循环指令,循环次数由 CX 寄存器决定
LOOPE/LOOPZ Loop while Equal/Loop while Zero 当标志位 ZF = 1 且 CX > 0 时循环
LOOPNE/LOOPNZ Loop while Not Equal/Loop while Not Zero 当标志位 ZF = 0 且 CX > 0 时循环
串操作 STOS Store String 将 AL/AX/EAX 中的值存储到指定的内存单元串中
LODS Load String 将指定内存单元串中的值加载到 AL/AX/EAX 中
处理器控制 HLT Halt 使处理器进入暂停状态
WAIT Wait 使处理器进入等待状态,直到收到信号
ESC Escape 处理器交权给外部设备,用于协处理器操作
LOCK Lock 在多处理器环境下,锁定总线,保证指令执行的原子性
相关推荐
敲代码不忘补水1 小时前
Docker 启动 PostgreSQL 主从架构:实现数据同步的高效部署指南
docker·postgresql·架构·数据库架构
0x派大星3 小时前
Solidity 设计模式:实现灵活与可扩展的智能合约架构
设计模式·架构·web3·区块链·智能合约·solidity
哇咔咔哇咔4 小时前
【科普】什么是架构和框架?两者之间有什么区别?
架构
克鲁德战士4 小时前
【Nacos架构 & 原理】内核设计之Nacos一致性协议
java·架构
winkee9 小时前
在 git commit 中使用 gpg key 进行签名
架构·前端框架·代码规范
Dylanioucn9 小时前
【分布式微服务云原生】掌握 Redis Cluster架构解析、动态扩展原理以及哈希槽分片算法
算法·云原生·架构
冬风诉10 小时前
汇编内存寻址
汇编
Eternal-Student10 小时前
预处理、编译、汇编、链接
linux·汇编·windows
黄俊懿11 小时前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构