硬编码(1)

什么是硬编码

 

指令编码的结构

 

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

 

 

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

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

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

四、他们的组合再加上纯寄存器表示了intel的全部操做对象。blog

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

一、PUSH/POP

 

 

 

 2.INC/DEC

0x40 - 0x47  INC ERXim

0x48 - 0x4F  DEC ERXcpu

 

 

 

 三、MOV Rb, Ib

0xb0 - 0xb7数据

 

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

四、MOV ERX, Id

0xb8 - 0xbF  word

 

 五、XCHG EAX, ERX

0x90 - 0x97

 

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

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

相关文章
相关标签/搜索