硬編碼(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,就知道後面的都是其餘指令碼

相關文章
相關標籤/搜索