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

embedded/2024/10/18 14:24:45/

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

指令类别指令英文全称功能简述
数据传送MOVMove将源操作数复制到目标操作数
LEALoad Effective Address加载有效地址到指定寄存器
PUSHPush onto the stack将操作数压入堆栈
POPPop from the stack从堆栈弹出操作数到指定位置
算术运算ADDAddition加法运算
SUBSubtraction减法运算
MULMultiply无符号乘法运算
IMULInteger Multiply有符号乘法运算
DIVDivide无符号除法运算
IDIVInteger Divide有符号除法运算
逻辑运算ANDLogical AND逻辑与运算
ORLogical OR逻辑或运算
XORExclusive OR逻辑异或运算
NOTLogical NOT逻辑非运算
控制转移JMPJump无条件跳转
JZJump if Zero结果为零则跳转
JNZJump if Not Zero结果不为零则跳转
CALLCall a subroutine调用子程序
RETReturn from a subroutine从子程序返回
串操作MOVSMove String移动字节串 / 字串
CMPSCompare String比较字节串 / 字串
SCASScan String扫描字节串 / 字串中的特定值
处理器控制CLCClear Carry Flag清除进位标志位
STCSet Carry Flag设置进位标志位
CLIClear Interrupt - Enable Flag清除中断允许标志位
STISet Interrupt - Enable Flag设置中断允许标志位

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

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

指令类别指令英文全称功能描述
数据传送MOVSXMove with Sign - extension将源操作数传送到目标操作数,同时进行符号扩展
MOVZXMove with Zero - extension将源操作数传送到目标操作数,同时进行零扩展
算术运算INCIncrement将操作数的值加 1
DECDecrement将操作数的值减 1
NEGNegate求操作数的相反数
逻辑运算TESTTest对两个操作数进行逻辑与操作,但不保存结果,只设置标志位
SHLShift Left将操作数左移指定的位数
SHRShift Right将操作数右移指定的位数,无符号数逻辑右移
SARShift Arithmetic Right将操作数算术右移指定的位数,用于有符号数
ROLRol循环左移操作数
RORRot Right循环右移操作数
控制转移JAJump if Above当无符号数比较结果为大于时跳转
JAEJump if Above or Equal当无符号数比较结果为大于等于时跳转
JBJump if Below当无符号数比较结果为小于时跳转
JBEJump if Below or Equal当无符号数比较结果为小于等于时跳转
JGJump if Greater当有符号数比较结果为大于时跳转
JGEJump if Greater or Equal当有符号数比较结果为大于等于时跳转
JLJump if Less当有符号数比较结果为小于时跳转
JLEJump if Less or Equal当有符号数比较结果为小于等于时跳转
LOOPLoop循环指令,循环次数由 CX 寄存器决定
LOOPE/LOOPZLoop while Equal/Loop while Zero当标志位 ZF = 1 且 CX > 0 时循环
LOOPNE/LOOPNZLoop while Not Equal/Loop while Not Zero当标志位 ZF = 0 且 CX > 0 时循环
串操作STOSStore String将 AL/AX/EAX 中的值存储到指定的内存单元串中
LODSLoad String将指定内存单元串中的值加载到 AL/AX/EAX 中
处理器控制HLTHalt使处理器进入暂停状态
WAITWait使处理器进入等待状态,直到收到信号
ESCEscape处理器交权给外部设备,用于协处理器操作
LOCKLock在多处理器环境下,锁定总线,保证指令执行的原子性


http://www.ppmy.cn/embedded/124221.html

相关文章

Win10之解决:设置静态IP后,为什么自动获取动态IP问题(七十八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

CUDA与TensorRT学习六:模型部署-CNN、模型部署-YOLOv8检测器、部署BEVFusion模型

文章目录 一、模型部署-CNN二、模型部署-YOLOv8检测器三、部署BEVFusion模型 一、模型部署-CNN 二、模型部署-YOLOv8检测器 三、部署BEVFusion模型

内存缓存和硬盘缓存

硬盘缓存 缓存内容: 静态资源:通常包括 CSS、JavaScript 文件、图像(如 PNG、JPEG)、字体文件等,这些文件在多个页面或会话中会被重复使用。API 响应:某些情况下,API 的响应内容也可能会被缓存&…

如何方便地打出「」和『』

比起英文中的引号 ‘’和 “”,我更喜欢使用中文直角引号:「」和 『』。 此外,在港澳台、日本这几个地区中,就经常使用『』和「」: ​ ‍ 注意:不同地区的习惯可能有所不同。在汉语中『』、「」分别为双…

【玩转 JS 函数式编程_008】3.1.2 JavaScript 函数式编程筑基之:箭头函数——一种更流行的写法

文章目录 3.1.2 箭头函数——更流行的方式 Arrow functions - the modern way1. 返回值 Returning values2. this 值的处理 Handling the this value3. arguments 的处理 Working with arguments4. 单参数还是多参数? One argument or many? 写在前面 故天将降大任…

基于SpringBoot+Vue+MySQL的在线学习交流平台

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展,在线学习已成为现代教育的重要组成部分。传统的面对面教学方式已无法满足广大学习者的需求,特别是在时间、地点上受限的学习者。因此,构建一个基于SpringBoot、Vue.…

《RabbitMQ篇》Centos7安装RabbitMQ

安装RabbitMQ 安装包网盘下载地址 链接:https://pan.baidu.com/s/1bG_nP0iCdAejkctFp1QztQ?pwd4mlw 先上传安装包到服务器(erlang-23.3.4.11-1.el7.x86_64.rpm和rabbitmq-server-3.9.16-1.el7.noarch.rpm)然后使用指令安装 # 安装 erlang r…

5G NR 切换流程简介

文章目录 切换类型分类切换步骤测量事件分类5G NR系统内切换信令流程 切换类型分类 5G NR 的切换类型分为 系统间切换和系统内切换,而 系统间切换又分为 5G NR 与 4G LTE 和5G NR 与3G WCDMA的切换。站内切换则分为站内切换和站间间切换。 切换步骤 主要分为三个阶…