首页
社区
课程
招聘
[求助]汇编指令格式
发表于: 2015-8-10 01:06 12625

[求助]汇编指令格式

2015-8-10 01:06
12625
一条指令的内容为:前缀 + 操作码 + ModR/M + SIB + 偏移 + 立即数 组成。

除了操作码以外,其他的我都理解了。

操作码的每一个位分别代表什么含义?

从以INC指令和PUSH指令可以看出,后面三个位代表寄存器,前面5个位代表(INC或者PUSH)
只需要一个字节就可以完整的表示一条指令

INC     EAX   (0100 0000)
PUSH  EAX   (0101 0000)

但是像MOV和ADD指令,则需要两个字节(或两个字节以上)才能完整的表示一条指令。

ADD     ECX, EAX (0000 0001 1100 0001)
MOV    EAX, ECX (1000 1011 1100 0001)

在常见的汇编指令中,操作码一般都是一个字节,在这个字节(8个位)中,有没有什么规律可以看出,一条指令需要几个参数,从而确定这条指令的长度(需要占用几个字节)。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
规律我没发现, 以前玩了下反汇编, 用的是查表方式
2015-8-20 12:47
0
雪    币: 16
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没什么统一的规律的,助记符和操作码两者并不是一对一的关系
2015-8-24 00:21
0
游客
登录 | 注册 方可回帖
返回
//