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