Dalvik指令

Dalvik指令

指令語法由指令的位描述和指令格式標識來決定

 

16位的字採用空格分割開來

每個字母表示四位,按從高字節到低字節,每四位可用|來表示不同的內容

A-Z的單個大寫字母作爲一個4位操作碼,op表示一個8位的操作碼

Ø”來表示這字段所有位爲0

 

 

 

 

A|G|op BBBB  F|E|D|C 第一個16位爲A|G|op,其中A|G爲高8位,op操作碼爲低8

BBBB 表示一個16位的偏移值 F|E|D|C共四個字節,表示寄存器參數

 

 

指令格式標識

  • 大多由三個字符組成,前兩個數字,最後一個是字母
  • 第一個表示指令有多少個16位的字
  • 第二個表示指令有多少個寄存器、
  • 字母表示類型碼

 

有一種特殊的情況是最後末尾多出一個字母,s表示採用靜態鏈接,i表示內聯處理

 

助記符 位大小 說明

b 8 8位有符號立即數

c 16,32 常量池索引

f 16 接口常量(僅對靜態鏈接格式有效)

h 16有符號立即數(32位或64位數的高值位,低值位爲0)

i 32 立即數,有符號整數或32位浮點數

l 64立即數,有符號整數或64位雙精度浮點數http://

m 16 方法常量(僅對靜態鏈接格式有效)

n 4 4位的立即數

s 16 短整型立即數

t 8,16,32 跳轉、分支

x 0 無額外數據

關於Dalvik字節碼解析可參考Bytecodefor the Dalvik VMDalvikVM Instruction Formats,一個是指令的位描述表,一個是指令的語法格式表.

來自 <http://blog.csdn.net/q327611906/article/details/50012869>

http://www.netmite.com/android/mydroid/dalvik/docs/dalvik-bytecode.html

http://www.netmite.com/android/mydroid/dalvik/docs/instruction-formats.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章