6、经典变长指令之_ModRM

ModR/M只有一个字节

 

经典变长指令 _ModR/M

0X88 MOV Eb, Gb G:通用寄存器

0X89 MOV Ev, Gv  E: 寄存器/内存

0X8A MOV Gb, Eb b: 字节

0X8B MOV Gv, Ev v: Word, doubleword, quadword

举个例子:

88 01

88查主表就是 MOV Eb, Gb (主表在2541页 Table A - 2)

01 拆分为 00 000 001

Reg/Opcode描述G (ModR/M的表在510页)

000是AL, 所以Gb是AL

Mod R/M5个位共同描述E

Mod的值是00

R/M是001

经过查表,Eb是 【ECX】(510页)

所以最终解析为 mov byte ptr ds:[ecx],al

 

注意:

3-5字段,并不仅仅用来标识寄存器,有些时候,用来标识扩展的Opcode

80 65 08 FF

80 查表是 XXX Eb, ib

65 --->01 100 101

查TABLE A-6(2552页) 得 XXX是AND

然后查表(510页)得 Eb是 [EBP] + disp32

AND byte ptr ds:[EBP + disp32] , ib

指令加上后面的 08 FF得

AND byte ptr ds:[EBP + 08], FF

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值