-
-
x86的指令编码方式(16位)
-
发表于:
2005-2-5 19:11
5099
-
16位的x86指令由5个部分组成:
1。 4个可能的指令前缀,每个前缀占用一个字节空间
lock/repeat
段override
Jcc分支指令hints (这个用法不太清楚)
操作数override 要在16位代码里面使用32位寄存器,需指定该前缀
寻址方式override 要在16位代码里面使用32位寄存器计算有效地址,需指定该前缀
2。 1-3个字节的指令代码
3。 ModR/M字节,1个字节,用于指定计算操作数的顺序,指令扩展功能编码, Displacement的存在与否。
4。 Displacement字节,指定偏移量,最长4字节或不存在,用于指定有效地址编码中偏移量
5。 Immediate字节,指定直接数,最长4字节或不存在,需要加入常量计算的指令将用到该部分,例如:mov ax,1234
特殊有效地址的编码:
[bp]用作表示[1234]这类只有偏移量的编码
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!