首页 > 其他 > 详细

硬编码(1)

时间:2021-04-05 00:50:31      阅读:26      评论:0      收藏:0      [点我收藏+]

什么是硬编码

技术分享图片

 

指令编码的结构

技术分享图片

 

 每一条指令,最短1字节,最长15字节

 

 

1、Intel对指令参数的设计了一种表示方式,格式是Zz一个大写字母加上一个小写字母。

2、大写字母表示寻找方式编码(寄存器,ModR/M,跳转相对地址,16:32地址格式等等),从A-Z共26种.

3、小写字母表示操作数的类型(byte,word,dword,fword等等不定,根据cpu模式或改写指令决定)  z有大约十几种表示方式。

4、他们的组合再加上纯寄存器表示了intel的所有操作对象。

经典定长指令上(修改寄存器)

1、PUSH/POP

技术分享图片

 

 技术分享图片

 

 2.INC/DEC

0x40 - 0x47  INC ERX

0x48 - 0x4F  DEC ERX

技术分享图片

 

 

技术分享图片

 

 3、MOV Rb, Ib

0xb0 - 0xb7

技术分享图片

 

 这个也是按八位寄存器顺序来的

4、MOV ERX, Id

0xb8 - 0xbF  

技术分享图片

 

 5、XCHG EAX, ERX

0x90 - 0x97

技术分享图片

 

 这里我们看到他只有eax和其他寄存器的交换,可以看出intel设计之初对0号寄存器是有特别照顾的

在定长指令下,cpu看到OPCode就知道了后面有几个数据要读,比如遇到90,就知道后面的都是其他指令码

硬编码(1)

原文:https://www.cnblogs.com/punished/p/14617066.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!