49、x86 指令编码全解析

x86 指令编码全解析

1. 单字节指令

单字节指令是最简单的指令类型,它要么没有操作数,要么有隐含操作数。这类指令只需要操作码字段,其值由处理器的指令集预先确定。以下是一些常见的单字节指令及其操作码:
| 指令 | 操作码 |
| ---- | ---- |
| AAA | 37 |
| AAS | 3F |
| CBW | 98 |
| LODSB | AC |
| XLAT | D7 |
| INC DX | 42 |

这里的 INC DX 指令看似有些特别,但指令集的设计者为某些常用指令提供了独特的操作码,这样寄存器增量操作在代码大小和执行速度上都得到了优化。

2. 立即数移动到寄存器

立即操作数(常量)以小端序(最低字节在前)附加到指令中。先关注将立即值移动到寄存器的指令,暂时避开内存寻址模式的复杂性。将立即字移动到寄存器的 MOV 指令的编码格式是 B8 + rw dw ,其中操作码字节值为 B8 + rw ,表示将寄存器编号(0 到 7)加到 B8 上; dw 是立即字操作数,最低字节在前。寄存器编号如下表所示:
| 寄存器 | 代码 |
| ---- | ---- |
| AX/AL | 0 |
| CX/CL | 1 |
| DX/DL | 2 |
| BX/BL | 3 |
| SP/AH | 4 |

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值