8086汇编指令速查手册
5星 · 超过95%的资源 需积分: 9 14 浏览量
更新于2024-11-18
收藏 7KB TXT 举报
"8086 汇编速查手册"
8086汇编语言是Intel 8086处理器使用的编程语言,它直接对应于机器指令,用于编写低级程序,如操作系统、设备驱动程序等。下面将详细阐述8086汇编中的几个关键知识点。
1. 数据移动指令
- MOV: 将源操作数的数据复制到目标操作数,可以用于寄存器与寄存器、寄存器与内存、内存与内存之间的数据传输。
- MOVSX: 有符号扩展,将一个8位或16位源操作数扩展为16位或32位,并将其移动到目的寄存器。
- MOVZX: 无符号扩展,将一个8位或16位源操作数扩展为16位或32位,并将其移动到目的寄存器。
- PUSH: 将一个操作数压入堆栈,通常用于保存临时数据或调用子程序时保留寄存器值。
- POP: 从堆栈顶部弹出一个操作数到指定寄存器,恢复先前保存的值。
- PUSHA/POPA: 分别将所有通用寄存器(AX, CX, DX, BX, SP, BP, SI, DI)一次性压入或弹出堆栈。
- PUSHAD/POPAD: 与PUSHA/POPA类似,但在32位环境下,将所有32位通用寄存器(EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI)压入或弹出堆栈。
2. 位操作指令
- BSWAP: 交换一个32位寄存器的高低字节,用于字节顺序转换。
- XCHG: 交换两个操作数的值,可以是寄存器与寄存器、寄存器与内存。
- CMPXCHG: 在比较后交换,原子操作,常用于同步原语。
- XADD: 交换并添加,同时更新两个操作数的值。
- XLAT: 查找表指令,根据AL的内容在内存地址[BX+AL]处查找并加载到AL。
3. 输入/输出指令
- IN: 从端口读取数据到寄存器,通常与DX寄存器一起使用,指定端口号。
- OUT: 将数据从寄存器写入端口,同样需要DX寄存器指定端口号。
- 端口地址范围:对于8位端口,地址范围是0-255;对于16位端口,地址范围是0-65535。
4. 寄存器间接寻址
- LEA: 计算内存地址,将表达式的结果加载到寄存器,不进行实际的数据访问。
- LDS/LDS/LES/LFS/LGS/LSS: 用于加载段寄存器(DS/ES/FS/GS/SS),并将内存地址加载到对应的指针寄存器(DX/SI/DI)。
5. 控制和算术指令
- LAHF/SAHF: 从标志寄存器加载或存储特定的标志位。
- PUSHF/POPF: 压入或弹出标志寄存器的值,用于保存和恢复程序状态。
- PUSHD/POPD: 对应于32位环境下的标志寄存器。
- ADD/ADC: 加法指令,ADC会在加法后加上进位标志CF。
- INC: 自增1操作。
- AAA/AAS: ASCII调整指令,用于处理十进制算术。
- DAA/DAS: 用于处理十六进制算术。
- SUB/SBB: 减法指令,SBB会减去带进位标志CF的值。
- DEC: 自减1操作。
- NEG: 取反,将操作数变为它的负数。
- CMP: 比较指令,不改变任何寄存器,仅设置标志位。
- MUL/IMUL: 乘法指令,结果可能溢出。
- AAM: ASCII除法辅助指令,用于处理ASCII格式的除法。
- DIV/IDIV: 整数除法指令,处理除法和求余数。
6. 类型转换指令
- CBW/CWD/CWDE/CDQ: 用于字节到字、字到双字的转换,确保正确的符号扩展。
这些指令构成了8086汇编语言的基础,它们在编写汇编代码时被频繁使用,理解和掌握这些指令是学习8086汇编的关键。通过熟练运用这些指令,开发者可以编写出高效、精确的低级程序。
2009-08-29 上传
2013-01-05 上传
2020-08-19 上传
2009-06-17 上传
2009-09-15 上传
2021-03-18 上传
2009-12-20 上传
2007-05-02 上传
2024-11-19 上传
2024-11-19 上传
sjcode
- 粉丝: 24
- 资源: 4
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析