日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

棧和局部變量操作

將常量壓入棧的指令

  • aconst_null 將null對象引用壓入棧
  • iconst_m1 將int類型常量-1壓入棧
  • iconst_0 將int類型常量0壓入棧
  • iconst_1 將int類型常量1壓入棧
  • iconst_2 將int類型常量2壓入棧
  • iconst_3 將int類型常量3壓入棧
  • iconst_4 將int類型常量4壓入棧
  • iconst_5 將int類型常量5壓入棧
  • lconst_0 將long類型常量0壓入棧
  • lconst_1 將long類型常量1壓入棧
  • fconst_0 將float類型常量0壓入棧
  • fconst_1 將float類型常量1壓入棧
  • dconst_0 將double類型常量0壓入棧
  • dconst_1 將double類型常量1壓入棧
  • bipush 將一個8位帶符號整數(shù)壓入棧
  • sipush 將16位帶符號整數(shù)壓入棧
  • ldc 把常量池中的項壓入棧
  • ldc_w 把常量池中的項壓入棧(使用寬索引)
  • ldc2_w 把常量池中l(wèi)ong類型或者double類型的項壓入棧(使用寬索引)

從棧中的局部變量中裝載值的指令

  • iload 從局部變量中裝載int類型值
  • lload 從局部變量中裝載long類型值
  • fload 從局部變量中裝載float類型值
  • dload 從局部變量中裝載double類型值
  • aload 從局部變量中裝載引用類型值(refernce)
  • iload_0 從局部變量0中裝載int類型值
  • iload_1 從局部變量1中裝載int類型值
  • iload_2 從局部變量2中裝載int類型值
  • iload_3 從局部變量3中裝載int類型值
  • lload_0 從局部變量0中裝載long類型值
  • lload_1 從局部變量1中裝載long類型值
  • lload_2 從局部變量2中裝載long類型值
  • lload_3 從局部變量3中裝載long類型值
  • fload_0 從局部變量0中裝載float類型值
  • fload_1 從局部變量1中裝載float類型值
  • fload_2 從局部變量2中裝載float類型值
  • fload_3 從局部變量3中裝載float類型值
  • dload_0 從局部變量0中裝載double類型值
  • dload_1 從局部變量1中裝載double類型值
  • dload_2 從局部變量2中裝載double類型值
  • dload_3 從局部變量3中裝載double類型值
  • aload_0 從局部變量0中裝載引用類型值
  • aload_1 從局部變量1中裝載引用類型值
  • aload_2 從局部變量2中裝載引用類型值
  • aload_3 從局部變量3中裝載引用類型值
  • iaload 從數(shù)組中裝載int類型值
  • laload 從數(shù)組中裝載long類型值
  • faload 從數(shù)組中裝載float類型值
  • daload 從數(shù)組中裝載double類型值
  • aaload 從數(shù)組中裝載引用類型值
  • baload 從數(shù)組中裝載byte類型或boolean類型值
  • caload 從數(shù)組中裝載char類型值
  • saload 從數(shù)組中裝載short類型值

將棧中的值存入局部變量的指令

  • istore 將int類型值存入局部變量
  • lstore 將long類型值存入局部變量
  • fstore 將float類型值存入局部變量
  • dstore 將double類型值存入局部變量
  • astore 將將引用類型或returnAddress類型值存入局部變量
  • istore_0 將int類型值存入局部變量0
  • istore_1 將int類型值存入局部變量1
  • istore_2 將int類型值存入局部變量2
  • istore_3 將int類型值存入局部變量3
  • lstore_0 將long類型值存入局部變量0
  • lstore_1 將long類型值存入局部變量1
  • lstore_2 將long類型值存入局部變量2
  • lstore_3 將long類型值存入局部變量3
  • fstore_0 將float類型值存入局部變量0
  • fstore_1 將float類型值存入局部變量1
  • fstore_2 將float類型值存入局部變量2
  • fstore_3 將float類型值存入局部變量3
  • dstore_0 將double類型值存入局部變量0
  • dstore_1 將double類型值存入局部變量1
  • dstore_2 將double類型值存入局部變量2
  • dstore_3 將double類型值存入局部變量3
  • astore_0 將引用類型或returnAddress類型值存入局部變量0
  • astore_1 將引用類型或returnAddress類型值存入局部變量1
  • astore_2 將引用類型或returnAddress類型值存入局部變量2
  • astore_3 將引用類型或returnAddress類型值存入局部變量3
  • iastore 將int類型值存入數(shù)組中
  • lastore 將long類型值存入數(shù)組中
  • fastore 將float類型值存入數(shù)組中
  • dastore 將double類型值存入數(shù)組中
  • aastore 將引用類型值存入數(shù)組中
  • bastore 將byte類型或者boolean類型值存入數(shù)組中
  • castore 將char類型值存入數(shù)組中
  • sastore 將short類型值存入數(shù)組中

wide指令

  • wide 使用附加字節(jié)擴展局部變量索引

通用(無類型)棧操作

  • nop 不做任何操作
  • pop 彈出棧頂端一個字長的內(nèi)容
  • pop2 彈出棧頂端兩個字長的內(nèi)容
  • dup 復制棧頂部一個字長內(nèi)容
  • dup_x1 復制棧頂部一個字長的內(nèi)容,然后將復制內(nèi)容及原來彈出的兩個字長的內(nèi)容壓入棧
  • dup_x2 復制棧頂部一個字長的內(nèi)容,然后將復制內(nèi)容及原來彈出的三個字長的內(nèi)容壓入棧
  • dup2 復制棧頂部兩個字長內(nèi)容
  • dup2_x1 復制棧頂部兩個字長的內(nèi)容,然后將復制內(nèi)容及原來彈出的三個字長的內(nèi)容壓入棧
  • dup2_x2 復制棧頂部兩個字長的內(nèi)容,然后將復制內(nèi)容及原來彈出的四個字長的內(nèi)容壓入棧
  • swap 交換棧頂部兩個字長內(nèi)容

類型轉(zhuǎn)換

  • i2l 把int類型的數(shù)據(jù)轉(zhuǎn)化為long類型
  • i2f 把int類型的數(shù)據(jù)轉(zhuǎn)化為float類型
  • i2d 把int類型的數(shù)據(jù)轉(zhuǎn)化為double類型
  • l2i 把long類型的數(shù)據(jù)轉(zhuǎn)化為int類型
  • l2f 把long類型的數(shù)據(jù)轉(zhuǎn)化為float類型
  • l2d 把long類型的數(shù)據(jù)轉(zhuǎn)化為double類型
  • f2i 把float類型的數(shù)據(jù)轉(zhuǎn)化為int類型
  • f2l 把float類型的數(shù)據(jù)轉(zhuǎn)化為long類型
  • f2d 把float類型的數(shù)據(jù)轉(zhuǎn)化為double類型
  • d2i 把double類型的數(shù)據(jù)轉(zhuǎn)化為int類型
  • d2l 把double類型的數(shù)據(jù)轉(zhuǎn)化為long類型
  • d2f 把double類型的數(shù)據(jù)轉(zhuǎn)化為float類型
  • i2b 把int類型的數(shù)據(jù)轉(zhuǎn)化為byte類型
  • i2c 把int類型的數(shù)據(jù)轉(zhuǎn)化為char類型
  • i2s 把int類型的數(shù)據(jù)轉(zhuǎn)化為short類型

整數(shù)運算

  • iadd 執(zhí)行int類型的加法
  • ladd 執(zhí)行l(wèi)ong類型的加法
  • isub 執(zhí)行int類型的減法
  • lsub 執(zhí)行l(wèi)ong類型的減法
  • imul 執(zhí)行int類型的乘法
  • lmul 執(zhí)行l(wèi)ong類型的乘法
  • idiv 執(zhí)行int類型的除法
  • ldiv 執(zhí)行l(wèi)ong類型的除法
  • irem 計算int類型除法的余數(shù)
  • lrem 計算long類型除法的余數(shù)
  • ineg 對一個int類型值進行取反操作
  • lneg 對一個long類型值進行取反操作
  • iinc 把一個常量值加到一個int類型的局部變量上

邏輯運算

移位操作

  • ishl 執(zhí)行int類型的向左移位操作
  • lshl 執(zhí)行l(wèi)ong類型的向左移位操作
  • ishr 執(zhí)行int類型的向右移位操作
  • lshr 執(zhí)行l(wèi)ong類型的向右移位操作
  • iushr 執(zhí)行int類型的向右邏輯移位操作
  • lushr 執(zhí)行l(wèi)ong類型的向右邏輯移位操作

按位布爾運算

  • iand 對int類型值進行“邏輯與”操作
  • land 對long類型值進行“邏輯與”操作
  • ior 對int類型值進行“邏輯或”操作
  • lor 對long類型值進行“邏輯或”操作
  • ixor 對int類型值進行“邏輯異或”操作
  • lxor 對long類型值進行“邏輯異或”操作

浮點運算

  • fadd 執(zhí)行float類型的加法
  • dadd 執(zhí)行double類型的加法
  • fsub 執(zhí)行float類型的減法
  • dsub 執(zhí)行double類型的減法
  • fmul 執(zhí)行float類型的乘法
  • dmul 執(zhí)行double類型的乘法
  • fdiv 執(zhí)行float類型的除法
  • ddiv 執(zhí)行double類型的除法
  • frem 計算float類型除法的余數(shù)
  • drem 計算double類型除法的余數(shù)
  • fneg 將一個float類型的數(shù)值取反
  • dneg 將一個double類型的數(shù)值取反

對象和數(shù)組

對象操作指令

  • new 創(chuàng)建一個新對象
  • checkcast 確定對象為所給定的類型
  • getfield 從對象中獲取字段
  • putfield 設(shè)置對象中字段的值
  • getstatic 從類中獲取靜態(tài)字段
  • putstatic 設(shè)置類中靜態(tài)字段的值
  • instanceof 判斷對象是否為給定的類型

數(shù)組操作指令

  • newarray 分配數(shù)據(jù)成員類型為基本上數(shù)據(jù)類型的新數(shù)組
  • anewarray 分配數(shù)據(jù)成員類型為引用類型的新數(shù)組
  • arraylength 獲取數(shù)組長度
  • multianewarray 分配新的多維數(shù)組

控制流

條件分支指令

  • ifeq 如果等于0,則跳轉(zhuǎn)
  • ifne 如果不等于0,則跳轉(zhuǎn)
  • iflt 如果小于0,則跳轉(zhuǎn)
  • ifge 如果大于等于0,則跳轉(zhuǎn)
  • ifgt 如果大于0,則跳轉(zhuǎn)
  • ifle 如果小于等于0,則跳轉(zhuǎn)
  • if_icmpcq 如果兩個int值相等,則跳轉(zhuǎn)
  • if_icmpne 如果兩個int類型值不相等,則跳轉(zhuǎn)
  • if_icmplt 如果一個int類型值小于另外一個int類型值,則跳轉(zhuǎn)
  • if_icmpge 如果一個int類型值大于或者等于另外一個int類型值,則跳轉(zhuǎn)
  • if_icmpgt 如果一個int類型值大于另外一個int類型值,則跳轉(zhuǎn)
  • if_icmple 如果一個int類型值小于或者等于另外一個int類型值,則跳轉(zhuǎn)
  • ifnull 如果等于null,則跳轉(zhuǎn)
  • ifnonnull 如果不等于null,則跳轉(zhuǎn)
  • if_acmpeq 如果兩個對象引用相等,則跳轉(zhuǎn)
  • if_acmpnc 如果兩個對象引用不相等,則跳轉(zhuǎn)

比較指令

  • lcmp 比較long類型值
  • fcmpl 比較float類型值(當遇到NaN時,返回-1)
  • fcmpg 比較float類型值(當遇到NaN時,返回1)
  • dcmpl 比較double類型值(當遇到NaN時,返回-1)
  • dcmpg 比較double類型值(當遇到NaN時,返回1)

無條件轉(zhuǎn)移指令

  • goto 無條件跳轉(zhuǎn)
  • goto_w 無條件跳轉(zhuǎn)(寬索引)
  • 表跳轉(zhuǎn)指令
  • tableswitch 通過索引訪問跳轉(zhuǎn)表,并跳轉(zhuǎn)
  • lookupswitch 通過鍵值匹配訪問跳轉(zhuǎn)表,并執(zhí)行跳轉(zhuǎn)操作

異常

  • athrow 拋出異常或錯誤
  • finally子句
  • jsr 跳轉(zhuǎn)到子例程
  • jsr_w 跳轉(zhuǎn)到子例程(寬索引)
  • rct 從子例程返回

方法調(diào)用與返回

方法調(diào)用指令

  • invokcvirtual 運行時按照對象的類來調(diào)用實例方法
  • invokespecial 根據(jù)編譯時類型來調(diào)用實例方法
  • invokestatic 調(diào)用類(靜態(tài))方法
  • invokcinterface 調(diào)用接口方法

方法返回指令

  • ireturn 從方法中返回int類型的數(shù)據(jù)
  • lreturn 從方法中返回long類型的數(shù)據(jù)
  • freturn 從方法中返回float類型的數(shù)據(jù)
  • dreturn 從方法中返回double類型的數(shù)據(jù)
  • areturn 從方法中返回引用類型的數(shù)據(jù)
  • return 從方法中返回,返回值為void

線程同步

  • montiorenter 進入并獲取對象監(jiān)視器
  • monitorexit 釋放并退出對象監(jiān)視器
  • JVM指令助記符

變量到操作數(shù)棧:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_

操作數(shù)棧到變量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_

常數(shù)到操作數(shù)棧:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_,lconst_,fconst_,dconst_

加:iadd,ladd,fadd,dadd

減:isub,lsub,fsub,dsub

乘:imul,lmul,fmul,dmul

除:idiv,ldiv,fdiv,ddiv

余數(shù):irem,lrem,frem,drem

取負:ineg,lneg,fneg,dneg

移位:ishl,lshr,iushr,lshl,lshr,lushr

按位或:ior,lor

按位與:iand,land

按位異或:ixor,lxor

類型轉(zhuǎn)換:i2l,i2f,i2d,l2f,l2d,f2d(放寬數(shù)值轉(zhuǎn)換)

i2b,i2c,i2s,l2i,f2i,f2l,d2i,d2l,d2f(縮窄數(shù)值轉(zhuǎn)換)

創(chuàng)建類實便:new

創(chuàng)建新數(shù)組:newarray,anewarray,multianwarray

訪問類的域和類實例域:getfield,putfield,getstatic,putstatic

把數(shù)據(jù)裝載到操作數(shù)棧:baload,caload,saload,iaload,laload,faload,daload,aaload

從操作數(shù)棧存存儲到數(shù)組:bastore,castore,sastore,iastore,lastore,fastore,dastore,aastore

獲取數(shù)組長度:arraylength

檢相類實例或數(shù)組屬性:instanceof,checkcast

操作數(shù)棧管理:pop,pop2,dup,dup2,dup_xl,dup2_xl,dup_x2,dup2_x2,swap

有條件轉(zhuǎn)移:ifeq,iflt,ifle,ifne,ifgt,ifge,ifnull,ifnonnull,if_icmpeq,if_icmpene,

if_icmplt,if_icmpgt,if_icmple,if_icmpge,if_acmpeq,if_acmpne,lcmp,fcmpl

fcmpg,dcmpl,dcmpg

復合條件轉(zhuǎn)移:tableswitch,lookupswitch

無條件轉(zhuǎn)移:goto,goto_w,jsr,jsr_w,ret

調(diào)度對象的實便方法:invokevirtual

調(diào)用由接口實現(xiàn)的方法:invokeinterface

調(diào)用需要特殊處理的實例方法:invokespecial

調(diào)用命名類中的靜態(tài)方法:invokestatic

方法返回:ireturn,lreturn,freturn,dreturn,areturn,return

異常:athrow

finally關(guān)鍵字的實現(xiàn)使用:jsr,jsr_w,ret

有需要編程視頻的可以私信小七"學習"哦!需要其他資源的也可以私聊小七的!

Java反匯編指令全集

 

分享到:
標簽:指令 反匯編 Java
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定