- 數(shù)據(jù)操作指令
-
move Move vA,vB 將vB寄存器的值賦給vA寄存器,源寄存器與目的寄存器都為4位 move-wide vA,vB 為4為的寄存器對(duì)賦值,源寄存器與目的寄存器都為4位 Move/from16 vAA,vBBBB 將vBBBB寄存器的值賦予vAA寄存器,源寄存器16位,目的寄存器8位 move-object vA,vB 出現(xiàn)object即為對(duì)象,這里就是為對(duì)象賦值,源寄存器和目的寄存器都是4位 move-object/from16 vAA,vBBBB 為對(duì)象賦值,源寄存器為16位,目的寄存器為8位 move-object/16 vAA,vBBBB 為對(duì)象賦值,源寄存器與目的寄存器都為16位 move-result vAA 將上一個(gè)invoke類型的指令操作的單子非都西昂結(jié)果賦值給vAA寄存器 move-result-wide vAA 將上一個(gè)invoke類型指令操作的雙字非對(duì)象結(jié)果賦給vAA寄存 move-exception vAA 保存運(yùn)行時(shí)發(fā)生的異常到vAA寄存器
-
- 返回指令
-
return return-void 表示函數(shù)從一個(gè)void方法返回,返回值為空 return vAA 表示函數(shù)返回一個(gè)32位非對(duì)象類型的值,返回寄存器為8位的寄存器vAA return-wide vAA 表示函數(shù)返回一個(gè)64位非對(duì)象類型的值,返回寄存器為8位的寄存器vAA return-object vAA 返回一個(gè)對(duì)象類型d值,返回寄存器為8位的寄存器vAA
-
- 數(shù)據(jù)定義指令
-
const 數(shù)據(jù)定義指令用來定義程序中用到的常量,字符串,類等數(shù)據(jù) const/4 vA,#+B 將數(shù)值符號(hào)擴(kuò)展位32位后賦給寄存器vAA const/16 vAA,#+BBBB 將數(shù)值符號(hào)擴(kuò)展位32位后賦給寄存器vAA const vAA,#+BBBBBBBB 將數(shù)值賦給寄存器vA const/high16 vAA,#+BBBB0000 將數(shù)值右邊0擴(kuò)展為32位后賦給寄存器vAA const-string vAA,string@BBBB 通過字符串索引構(gòu)造一個(gè)字符串并賦值給寄存器vAA const-string/jmbo vAA,string@BBBBBBBB 通過字符串索引(較大)構(gòu)造一個(gè)字符串并賦給寄存器vAA const-class vAA,type@BBBB 通過類型索引獲取一個(gè)類引用并賦給寄存器vAA
-
- 實(shí)例操作指令
-
check-cast vAA,type@BBBB:check-cast 0 將vAA寄存器中的對(duì)象引用轉(zhuǎn)換成指定的類型 如果失敗會(huì)爆出classcastException異常 如果類型B指定的是基本類型,對(duì)于非基本類型的A來說,運(yùn)行時(shí)會(huì)失敗 instanmce-of vA,vB 判斷vB寄存器中的對(duì)象引用是否可以轉(zhuǎn)換成指定的類型 如果可以vA寄存器賦值為1,否則vA寄存器賦值為0 new-instance vAA,type@BBBB 構(gòu)造一個(gè)指定類型對(duì)象的新實(shí)例,并將對(duì)象引用賦值給vAA寄存器,類型符type指定的類型不能是數(shù)組類
-
- 數(shù)組操作指令
數(shù)組操作包括獲取數(shù)組長(zhǎng)度,新建數(shù)組,數(shù)組賦值,數(shù)組元素取值與賦值等操作 array-length vA,vB 獲取vB寄存器中數(shù)組的長(zhǎng)度并將值賦給vA寄存器 數(shù)組長(zhǎng)度指的是數(shù)組的條目個(gè)數(shù) new -array vA,vB type@CCCC 構(gòu)造指定類型(type@CCCC)與大小(vB)的數(shù)組,并將值賦給vA寄存器 filled-new-array {vC,vD,vE} 構(gòu)造指定類型(type@CCCC)與大小(vB)的數(shù)組,并指定了參數(shù),并將值賦給vA寄存器
- 異常指令
throw vAA 拋出vAA寄存器中指定類型的異常
- 跳轉(zhuǎn)指令
goto:無條件跳轉(zhuǎn) switch:分支跳轉(zhuǎn) packed-switch :有規(guī)律跳轉(zhuǎn) if :條件跳轉(zhuǎn) if-eq:等于 if-ne:不等于
- 比較指令
- 字段操作指令
普通字段 => iget 讀---從后往前走 ,iput 寫---從前往后走 靜態(tài)字段 => sget 讀 , sput寫
- 方法調(diào)用指令
invoke-virtual :調(diào)用實(shí)例的虛方法
invoke-super : 調(diào)用實(shí)例的父類/基類方法
invoke-direct :調(diào)用實(shí)例的直接方法
invoke-static :調(diào)用實(shí)例的靜態(tài)方法
invoke-interface: 調(diào)用實(shí)例的接口方法
- 數(shù)據(jù)轉(zhuǎn)換指令
opcode vA,vB
數(shù)據(jù)轉(zhuǎn)化指令用于將一種類型的數(shù)值轉(zhuǎn)換成另一種類型
vB寄存器放需要轉(zhuǎn)換的數(shù)據(jù),轉(zhuǎn)換后的結(jié)果保存在vA寄存器中
- 數(shù)據(jù)運(yùn)算指令
add 加
sub 減
mul 乘
div 除
rem 模
and 與
or 活
xor 異或
shl 有符號(hào)左移
shr 有符號(hào)右移
ushr 無符號(hào)右移
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
寄存器
+關(guān)注
關(guān)注
31文章
5317瀏覽量
120003 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6890瀏覽量
88826 -
編譯
+關(guān)注
關(guān)注
0文章
654瀏覽量
32806
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
[資料分享]+《Android軟件安全與逆向分析》
不同的寄存器表示方法——v命名法與p命名法 42 3.2.5 Dalvik字節(jié)碼的類型、方法與字段表示方法 43 3.3 Dalvik
發(fā)表于 09-26 10:53
多寄存器Load/Store內(nèi)存訪問指令
5.4 多寄存器Load/Store內(nèi)存訪問指令 多寄存器Load/Store內(nèi)存訪問指令也叫批量加載/存儲(chǔ)指令,它可以實(shí)現(xiàn)在一組
發(fā)表于 10-18 15:56
?1次下載
單寄存器的Load/Store指令詳解
(Single Register) 這些指令在ARM寄存器和存儲(chǔ)器之間提供更靈活的單數(shù)據(jù)項(xiàng)傳送方式。數(shù)據(jù)項(xiàng)可以是字節(jié)、16位半字或32位字。 ② 多
發(fā)表于 10-18 15:57
?1次下載
Thumb指令集之多寄存器數(shù)據(jù)傳送指令解析
于過程調(diào)用與返回以及存儲(chǔ)器塊拷貝。但為了編碼的緊湊性,這兩種用法由分開的指令實(shí)現(xiàn),并且這些指令也只使用單一的尋址方式。在其他方面,這些指令的性質(zhì)與等價(jià)的ARM
發(fā)表于 10-19 09:56
?0次下載
淺談單寄存器數(shù)據(jù)傳送指令
11.5 單寄存器數(shù)據(jù)傳送指令 Thumb指令集支持寄存器的裝載和存儲(chǔ),即LDR和STR指令。8和類型的Load/Store
發(fā)表于 10-19 10:04
?1次下載
指令指針寄存器是什么_作用有哪些
指令指針寄存器IP(X86型CPU)相當(dāng)于ARM型CPU中的程序計(jì)數(shù)器PC,用于控制程序中指令的執(zhí)行順序。正常運(yùn)行時(shí),IP中含有BIU要取的下一條指
發(fā)表于 11-13 09:58
?1.2w次閱讀
指令指針寄存器和指針寄存器差異性在哪兒
指令寄存器IR ,是臨時(shí)放置從內(nèi)存里面取得的代碼數(shù)據(jù)(也就是指令),然后等待譯碼器來譯碼。指令指針寄存器
發(fā)表于 11-13 10:24
?8105次閱讀
逆向基礎(chǔ)之寄存器和內(nèi)存詳解
本文主要介紹的是逆向基礎(chǔ)的寄存器和內(nèi)存方面的信息,首先介紹的是逆向主要是做什么的,其次對(duì)編程和機(jī)器架構(gòu)做了個(gè)簡(jiǎn)介,最后詳細(xì)的闡述了逆向基礎(chǔ)的寄存器
發(fā)表于 04-26 09:52
?2964次閱讀
JTAG 指令寄存器和指令譯碼器介紹
指令寄存器的目的是通過 TDI 信號(hào)移入指令。另外,指令寄存器還可以在新指令完全移入之前,存儲(chǔ)當(dāng)
發(fā)表于 02-03 10:42
?3193次閱讀
Linux程序狀態(tài)寄存器訪問指令
(CPSR或SPSR) MRS R 0 ,CPSR ;傳送CPSR的內(nèi)容到R 0 MRS R 0 ,SPSR ;傳送SPSR的內(nèi)容到R 0 2、【MSR指令】 MSR 程序狀態(tài)寄存器(CPSR或
評(píng)論