X86指令编码内幕 --- immediate 值

immediate 值


 

immediate 部分为指令提供一个 immediate operand。

immediate 寻址分为两种:需要 ModRM 字节引导和直接嵌在 opcode 中。

但是:

  ModRM 字节本身是不提供 immediate 寻址的,这个 ModRM 字节除了提供 register 和 memory 寻址外,只是起了对 Opcode 进行补充的作用,即:这个 Opcode 是一个 Group Opcode

  而 immediate 实际上还是嵌在 Opcode 中。

 

 

1、使用 immediate 的方式

上面已经说了,提供 immediate 的方式为:

(1)operand 寻址在 opcode 中嵌入,即:encode 中直接提供 immediate 值

这一类指令很多,也很常用,如:call/jmp,mov/push 等等..

例:指令 mov al, 1

它的 encode 是:b0 01 这种就是典型的指令,operand 寻址方式是嵌在 opcode 中的。


(2)operand 寻址需要 ModRM 引导

基于这种寻址方式,可肯定这个 opcode 是 Group 属性的 opcode

★ ModRM.reg 对 opcode 进行补充确定,而 ModRM.r/m 是提供 register 或者 memory 寻址。

 

例: 指令 mov dwor

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值