馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
【重點】歸總了一些簡單的Smail指令。
- 1.If語句
- if-nez v0,:cond_0 如果結果不為0,就跳轉到cond_0標號處
- if-eqz v0,:cond_1 如果結果為0,就跳轉到cond_1標號處
-
- 2.資料操作指令
- move v0,v1 將v1的值賦給v0 ,兩個寄存器都為4位
-
- move-result v0 將上一個invoke類型指令操作的單字非對像結果賦給v0
- move-result-object v0 將上一個invoke類型指令操作的對象結果(返回值)賦給v0
-
- 3.返回指令
- return-void
- return v0
- return-object v0
-
- 4.實例操作指令
- check-cast v1, Landroid/widget/TextView; 將v1寄存器中的對象引用轉化成指定的類型(這裡是 TextView)
- new-instance v1, Ljava/lang/StringBuilder; 構造一個指定類型對象的新實例
-
- 5.數組操作指令
- new-array v0,v0,[I 構造Int類型,大小是v0的數組,並將值賦給v0寄存器
- array-length v1,v0 獲取v0數組的長度且將值賦給v1
-
- 6.異常指令
- throw vAA 拋出vAA寄存器中指定類型的異常
-
- 7.跳轉指令
- 1,goto :goto_0 偏移量goto_0不能為0
- 2,If語句
- 3,switch
- packed-switch v0, :pswitch_data_0 v0是switch需要判斷的值 :pswitch_data_0 偏移表,表中值是有規律遞增的。
- sparse-switch v0, :pswitch_data_0 偏移表中值是無規律的。
- 8,比較指令
- cmpl-float v0,v2,v3 比較v2和v3,如果v2>v3,v0=-1;反之,v0=1;相等,v0=0
- cmpg-float v0,v2,v3 比較v2和v3,如果v2>v3,v0=1;反之,v0=-1;相等,v0=0
- cmpl-double v0,v2,v3 同理
- cmpg-double v0,v2,v3 同理
- cmp-long v0,v2,v3 比較v2和v3,如果v2>v3,v0=1;反之,v0=-1;相等,v0=0
複製代碼 |
評分
-
查看全部評分
|