Intel 80186及以上汇编指令代码表
需积分: 9 179 浏览量
更新于2024-11-29
收藏 147KB PDF 举报
"Intel Assembler 80186 and higher CodeTable"
本文将详细解析x86汇编语言中的一些核心指令,这些指令在Intel 80186及更高版本的处理器上运行。这份代码表涵盖了转移、标志操作、算术与逻辑运算、控制流程以及数据处理等多个方面,对于理解和编写x86汇编程序具有重要的参考价值。
1. **转移指令**:
- `MOV`:移动或复制操作数,不改变标志位,例如`MOVDest,Source`,将Source的值赋给Dest。
- `XCHG`:交换两个操作数的值,如`XCHGOp1,Op2`,Op1和Op2的值互换。
2. **标志操作指令**:
- `STC`:设置进位标志,使CF=1。
- `CLC`:清除进位标志,使CF=0。
- `CMC`:取反进位标志,CF取反。
- `STD`:设置方向标志,用于串操作时向下(地址减小)进行。
- `CLD`:清除方向标志,串操作向上(地址增大)进行。
- `STI`:开启中断,使IF=1。
- `CLI`:关闭中断,使IF=0。
3. **堆栈操作指令**:
- `PUSH`:将源操作数压入堆栈,如`PUSHSource`,堆栈指针SP递减,Source的值存入[SP]。
- `POPF`:弹出堆栈中的标志位到相应位置,恢复标志状态。
- `PUSHA`:将所有通用寄存器压入堆栈,顺序是AX, CX, DX, BX, SP, BP, SI, DI。
- `POP`:从堆栈中弹出数据到目标操作数,如`POPDest`,堆栈指针SP递增,[SP]的值赋给Dest。
- `POPA`:将堆栈中的所有通用寄存器值依次弹出,恢复它们的原值。
4. **数据转换指令**:
- `CBW`:字节扩展至字,将AL中的带符号字节转换为AX中的带符号字。
- `CWD`:字扩展至双字,将AX中的带符号字扩展为DX:AX的带符号双字。
- `CWDE`(386及以上):字扩展至32位,将AX中的带符号字转换为EAX中的带符号32位数。
5. **其他常用指令**:
- `PUSHF`:压入标志寄存器到堆栈,包含O, D, I, T, S, Z, A, P, C等标志,286以上还包含NT, IOPL标志。
- `POPFD`(386及以上):从堆栈中弹出标志寄存器,恢复其值。
以上指令是x86汇编语言的基本组成部分,理解并熟练掌握这些指令,能够帮助开发者有效地编写和调试底层代码。在实际编程中,还会涉及到其他指令,如算术运算指令(ADD, SUB, MUL, DIV等)、逻辑运算指令(AND, OR, XOR, NOT等)、比较指令(CMP)以及控制流程指令(JMP, CALL, RET等),这些指令共同构成了x86汇编语言的完整体系。
2010-01-08 上传
2010-09-10 上传
2007-12-25 上传
2008-12-15 上传
2012-12-10 上传
2011-06-19 上传
2021-03-31 上传
2013-05-07 上传
2021-05-04 上传
doodler88
- 粉丝: 0
- 资源: 1
最新资源
- Fall2019-bcc:Fall2019-bcc由GitHub Classroom创建
- DerbyCon_WarWalking:使用Hak5的WiFi Pineapple在DerbyCon上进行战争行走。 PineAP-收获SSID。 它只是在扫描信标,而没有用户连接
- NETcs.zip_.net编程_Visual_C++_
- geobricks_rest_engine:Geobricks REST引擎
- HTML网站源码-现代工业机器响应式网页模板-适配移动端&PC端.zip
- 易语言超级列表框子类化源码-易语言
- 131套PPT模板.zip,131套PPT模板.zip,131套PPT模板.zip
- 韩国8屏BANNER样式焦点图效果代码.zip
- docker-clamav:与文件共享容器,REST API或TCP一起使用的多体系结构docker化开源防病毒软件
- shipinfenxitu_对信号进行时频分析_
- monaco-html:摩纳哥编辑器HTML语言插件
- 基于CSS3实现翻转切换用户登录注册界面特效源码.zip
- keylogger_hook_exe_dll.zip_钩子与API截获_Visual_C++_
- 汇编语言调用库 - 配套Assembly Language for X86 Processors
- HTML网站源码-在线房产交易信息响应式网页模板-适配移动端&PC端.zip
- 易语言取鼠标句柄源码-易语言