JavaShuo
欄目
標籤
JVM指令集及各指令的詳細使用說明
時間 2019-11-13
標籤
jvm
指令
詳細
使用說明
欄目
Java
简体版
原文
原文鏈接
Java代碼
指令碼 助記符 說明
0x00
nop 什麼都不作
0x01
aconst_null 將
null
推送至棧頂
0x02
iconst_m1 將
int
型-
1
推送至棧頂
0x03
iconst_0 將
int
型
0
推送至棧頂
0x04
iconst_1 將
int
型
1
推送至棧頂
0x05
iconst_2 將
int
型
2
推送至棧頂
0x06
iconst_3 將
int
型
3
推送至棧頂
0x07
iconst_4 將
int
型
4
推送至棧頂
0x08
iconst_5 將
int
型
5
推送至棧頂
0x09
lconst_0 將
long
型
0
推送至棧頂
0x0a
lconst_1 將
long
型
1
推送至棧頂
0x0b
fconst_0 將
float
型
0
推送至棧頂
0x0c
fconst_1 將
float
型
1
推送至棧頂
0x0d
fconst_2 將
float
型
2
推送至棧頂
0x0e
dconst_0 將
double
型
0
推送至棧頂
0x0f
dconst_1 將
double
型
1
推送至棧頂
0x10
bipush 將單字節的常量值(-
128
~
127
)推送至棧頂
0x11
sipush 將一個短整型常量值(-
32768
~
32767
)推送至棧頂
0x12
ldc 將
int
,
float
或String型常量值從常量池中推送至棧頂
0x13
ldc_w 將
int
,
float
或String型常量值從常量池中推送至棧頂(寬索引)
0x14
ldc2_w 將
long
或
double
型常量值從常量池中推送至棧頂(寬索引)
0x15
iload 將指定的
int
型本地變量推送至棧頂
0x16
lload 將指定的
long
型本地變量推送至棧頂
0x17
fload 將指定的
float
型本地變量推送至棧頂
0x18
dload 將指定的
double
型本地變量推送至棧頂
0x19
aload 將指定的引用類型本地變量推送至棧頂
0x1a
iload_0 將第一個
int
型本地變量推送至棧頂
0x1b
iload_1 將第二個
int
型本地變量推送至棧頂
0x1c
iload_2 將第三個
int
型本地變量推送至棧頂
0x1d
iload_3 將第四個
int
型本地變量推送至棧頂
0x1e
lload_0 將第一個
long
型本地變量推送至棧頂
0x1f
lload_1 將第二個
long
型本地變量推送至棧頂
0x20
lload_2 將第三個
long
型本地變量推送至棧頂
0x21
lload_3 將第四個
long
型本地變量推送至棧頂
0x22
fload_0 將第一個
float
型本地變量推送至棧頂
0x23
fload_1 將第二個
float
型本地變量推送至棧頂
0x24
fload_2 將第三個
float
型本地變量推送至棧頂
0x25
fload_3 將第四個
float
型本地變量推送至棧頂
0x26
dload_0 將第一個
double
型本地變量推送至棧頂
0x27
dload_1 將第二個
double
型本地變量推送至棧頂
0x28
dload_2 將第三個
double
型本地變量推送至棧頂
0x29
dload_3 將第四個
double
型本地變量推送至棧頂
0x2a
aload_0 將第一個引用類型本地變量推送至棧頂
0x2b
aload_1 將第二個引用類型本地變量推送至棧頂
0x2c
aload_2 將第三個引用類型本地變量推送至棧頂
0x2d
aload_3 將第四個引用類型本地變量推送至棧頂
0x2e
iaload 將
int
型數組指定索引的值推送至棧頂
0x2f
laload 將
long
型數組指定索引的值推送至棧頂
0x30
faload 將
float
型數組指定索引的值推送至棧頂
0x31
daload 將
double
型數組指定索引的值推送至棧頂
0x32
aaload 將引用型數組指定索引的值推送至棧頂
0x33
baload 將
boolean
或
byte
型數組指定索引的值推送至棧頂
0x34
caload 將
char
型數組指定索引的值推送至棧頂
0x35
saload 將
short
型數組指定索引的值推送至棧頂
0x36
istore 將棧頂
int
型數值存入指定本地變量
0x37
lstore 將棧頂
long
型數值存入指定本地變量
0x38
fstore 將棧頂
float
型數值存入指定本地變量
0x39
dstore 將棧頂
double
型數值存入指定本地變量
0x3a
astore 將棧頂引用型數值存入指定本地變量
0x3b
istore_0 將棧頂
int
型數值存入第一個本地變量
0x3c
istore_1 將棧頂
int
型數值存入第二個本地變量
0x3d
istore_2 將棧頂
int
型數值存入第三個本地變量
0x3e
istore_3 將棧頂
int
型數值存入第四個本地變量
0x3f
lstore_0 將棧頂
long
型數值存入第一個本地變量
0x40
lstore_1 將棧頂
long
型數值存入第二個本地變量
0x41
lstore_2 將棧頂
long
型數值存入第三個本地變量
0x42
lstore_3 將棧頂
long
型數值存入第四個本地變量
0x43
fstore_0 將棧頂
float
型數值存入第一個本地變量
0x44
fstore_1 將棧頂
float
型數值存入第二個本地變量
0x45
fstore_2 將棧頂
float
型數值存入第三個本地變量
0x46
fstore_3 將棧頂
float
型數值存入第四個本地變量
0x47
dstore_0 將棧頂
double
型數值存入第一個本地變量
0x48
dstore_1 將棧頂
double
型數值存入第二個本地變量
0x49
dstore_2 將棧頂
double
型數值存入第三個本地變量
0x4a
dstore_3 將棧頂
double
型數值存入第四個本地變量
0x4b
astore_0 將棧頂引用型數值存入第一個本地變量
0x4c
astore_1 將棧頂引用型數值存入第二個本地變量
0x4d
astore_2 將棧頂引用型數值存入第三個本地變量
0x4e
astore_3 將棧頂引用型數值存入第四個本地變量
0x4f
iastore 將棧頂
int
型數值存入指定數組的指定索引位置
0x50
lastore 將棧頂
long
型數值存入指定數組的指定索引位置
0x51
fastore 將棧頂
float
型數值存入指定數組的指定索引位置
0x52
dastore 將棧頂
double
型數值存入指定數組的指定索引位置
0x53
aastore 將棧頂引用型數值存入指定數組的指定索引位置
0x54
bastore 將棧頂
boolean
或
byte
型數值存入指定數組的指定索引位置
0x55
castore 將棧頂
char
型數值存入指定數組的指定索引位置
0x56
sastore 將棧頂
short
型數值存入指定數組的指定索引位置
0x57
pop 將棧頂數值彈出 (數值不能是
long
或
double
類型的)
0x58
pop2 將棧頂的一個(
long
或
double
類型的)或兩個數值彈出(其它)
0x59
dup 複製棧頂數值並將複製值壓入棧頂
0x5a
dup_x1 複製棧頂數值並將兩個複製值壓入棧頂
0x5b
dup_x2 複製棧頂數值並將三個(或兩個)複製值壓入棧頂
0x5c
dup2 複製棧頂一個(
long
或
double
類型的)或兩個(其它)數值並將複製值壓入棧頂
0x5d
dup2_x1 <待補充>
0x5e
dup2_x2 <待補充>
0x5f
swap 將棧最頂端的兩個數值互換(數值不能是
long
或
double
類型的)
0x60
iadd 將棧頂兩
int
型數值相加並將結果壓入棧頂
0x61
ladd 將棧頂兩
long
型數值相加並將結果壓入棧頂
0x62
fadd 將棧頂兩
float
型數值相加並將結果壓入棧頂
0x63
dadd 將棧頂兩
double
型數值相加並將結果壓入棧頂
0x64
isub 將棧頂兩
int
型數值相減並將結果壓入棧頂
0x65
lsub 將棧頂兩
long
型數值相減並將結果壓入棧頂
0x66
fsub 將棧頂兩
float
型數值相減並將結果壓入棧頂
0x67
dsub 將棧頂兩
double
型數值相減並將結果壓入棧頂
0x68
imul 將棧頂兩
int
型數值相乘並將結果壓入棧頂
0x69
lmul 將棧頂兩
long
型數值相乘並將結果壓入棧頂
0x6a
fmul 將棧頂兩
float
型數值相乘並將結果壓入棧頂
0x6b
dmul 將棧頂兩
double
型數值相乘並將結果壓入棧頂
0x6c
idiv 將棧頂兩
int
型數值相除並將結果壓入棧頂
0x6d
ldiv 將棧頂兩
long
型數值相除並將結果壓入棧頂
0x6e
fdiv 將棧頂兩
float
型數值相除並將結果壓入棧頂
0x6f
ddiv 將棧頂兩
double
型數值相除並將結果壓入棧頂
0x70
irem 將棧頂兩
int
型數值做取模運算並將結果壓入棧頂
0x71
lrem 將棧頂兩
long
型數值做取模運算並將結果壓入棧頂
0x72
frem 將棧頂兩
float
型數值做取模運算並將結果壓入棧頂
0x73
drem 將棧頂兩
double
型數值做取模運算並將結果壓入棧頂
0x74
ineg 將棧頂
int
型數值取負並將結果壓入棧頂
0x75
lneg 將棧頂
long
型數值取負並將結果壓入棧頂
0x76
fneg 將棧頂
float
型數值取負並將結果壓入棧頂
0x77
dneg 將棧頂
double
型數值取負並將結果壓入棧頂
0x78
ishl 將
int
型數值左移位指定位數並將結果壓入棧頂
0x79
lshl 將
long
型數值左移位指定位數並將結果壓入棧頂
0x7a
ishr 將
int
型數值右(符號)移位指定位數並將結果壓入棧頂
0x7b
lshr 將
long
型數值右(符號)移位指定位數並將結果壓入棧頂
0x7c
iushr 將
int
型數值右(無符號)移位指定位數並將結果壓入棧頂
0x7d
lushr 將
long
型數值右(無符號)移位指定位數並將結果壓入棧頂
0x7e
iand 將棧頂兩
int
型數值做「按位與」並將結果壓入棧頂
0x7f
land 將棧頂兩
long
型數值做「按位與」並將結果壓入棧頂
0x80
ior 將棧頂兩
int
型數值做「按位或」並將結果壓入棧頂
0x81
lor 將棧頂兩
long
型數值做「按位或」並將結果壓入棧頂
0x82
ixor 將棧頂兩
int
型數值做「按位異或」並將結果壓入棧頂
0x83
lxor 將棧頂兩
long
型數值做「按位異或」並將結果壓入棧頂
0x84
iinc 將指定
int
型變量增長指定值(i++, i--, i+=
2
)
0x85
i2l 將棧頂
int
型數值強制轉換成
long
型數值並將結果壓入棧頂
0x86
i2f 將棧頂
int
型數值強制轉換成
float
型數值並將結果壓入棧頂
0x87
i2d 將棧頂
int
型數值強制轉換成
double
型數值並將結果壓入棧頂
0x88
l2i 將棧頂
long
型數值強制轉換成
int
型數值並將結果壓入棧頂
0x89
l2f 將棧頂
long
型數值強制轉換成
float
型數值並將結果壓入棧頂
0x8a
l2d 將棧頂
long
型數值強制轉換成
double
型數值並將結果壓入棧頂
0x8b
f2i 將棧頂
float
型數值強制轉換成
int
型數值並將結果壓入棧頂
0x8c
f2l 將棧頂
float
型數值強制轉換成
long
型數值並將結果壓入棧頂
0x8d
f2d 將棧頂
float
型數值強制轉換成
double
型數值並將結果壓入棧頂
0x8e
d2i 將棧頂
double
型數值強制轉換成
int
型數值並將結果壓入棧頂
0x8f
d2l 將棧頂
double
型數值強制轉換成
long
型數值並將結果壓入棧頂
0x90
d2f 將棧頂
double
型數值強制轉換成
float
型數值並將結果壓入棧頂
0x91
i2b 將棧頂
int
型數值強制轉換成
byte
型數值並將結果壓入棧頂
0x92
i2c 將棧頂
int
型數值強制轉換成
char
型數值並將結果壓入棧頂
0x93
i2s 將棧頂
int
型數值強制轉換成
short
型數值並將結果壓入棧頂
0x94
lcmp 比較棧頂兩
long
型數值大小,並將結果(
1
,
0
,-
1
)壓入棧頂
0x95
fcmpl 比較棧頂兩
float
型數值大小,並將結果(
1
,
0
,-
1
)壓入棧頂;當其中一個數值爲NaN時,將-
1
壓入棧頂
0x96
fcmpg 比較棧頂兩
float
型數值大小,並將結果(
1
,
0
,-
1
)壓入棧頂;當其中一個數值爲NaN時,將
1
壓入棧頂
0x97
dcmpl 比較棧頂兩
double
型數值大小,並將結果(
1
,
0
,-
1
)壓入棧頂;當其中一個數值爲NaN時,將-
1
壓入棧頂
0x98
dcmpg 比較棧頂兩
double
型數值大小,並將結果(
1
,
0
,-
1
)壓入棧頂;當其中一個數值爲NaN時,將
1
壓入棧頂
0x99
ifeq 當棧頂
int
型數值等於
0
時跳轉
0x9a
ifne 當棧頂
int
型數值不等於
0
時跳轉
0x9b
iflt 當棧頂
int
型數值小於
0
時跳轉
0x9c
ifge 當棧頂
int
型數值大於等於
0
時跳轉
0x9d
ifgt 當棧頂
int
型數值大於
0
時跳轉
0x9e
ifle 當棧頂
int
型數值小於等於
0
時跳轉
0x9f
if_icmpeq 比較棧頂兩
int
型數值大小,當結果等於
0
時跳轉
0xa0
if_icmpne 比較棧頂兩
int
型數值大小,當結果不等於
0
時跳轉
0xa1
if_icmplt 比較棧頂兩
int
型數值大小,當結果小於
0
時跳轉
0xa2
if_icmpge 比較棧頂兩
int
型數值大小,當結果大於等於
0
時跳轉
0xa3
if_icmpgt 比較棧頂兩
int
型數值大小,當結果大於
0
時跳轉
0xa4
if_icmple 比較棧頂兩
int
型數值大小,當結果小於等於
0
時跳轉
0xa5
if_acmpeq 比較棧頂兩引用型數值,當結果相等時跳轉
0xa6
if_acmpne 比較棧頂兩引用型數值,當結果不相等時跳轉
0xa7
goto
無條件跳轉
0xa8
jsr 跳轉至指定
16
位offset位置,並將jsr下一條指令地址壓入棧頂
0xa9
ret 返回至本地變量指定的index的指令位置(通常與jsr, jsr_w聯合使用)
0xaa
tableswitch 用於
switch
條件跳轉,
case
值連續(可變長度指令)
0xab
lookupswitch 用於
switch
條件跳轉,
case
值不連續(可變長度指令)
0xac
ireturn 從當前方法返回
int
0xad
lreturn 從當前方法返回
long
0xae
freturn 從當前方法返回
float
0xaf
dreturn 從當前方法返回
double
0xb0
areturn 從當前方法返回對象引用
0xb1
return
從當前方法返回
void
0xb2
getstatic 獲取指定類的靜態域,並將其值壓入棧頂
0xb3
putstatic 爲指定的類的靜態域賦值
0xb4
getfield 獲取指定類的實例域,並將其值壓入棧頂
0xb5
putfield 爲指定的類的實例域賦值
0xb6
invokevirtual 調用實例方法
0xb7
invokespecial 調用超類構造方法,實例初始化方法,私有方法
0xb8
invokestatic 調用靜態方法
0xb9
invokeinterface 調用接口方法
0xba
--
0xbb
new
建立一個對象,並將其引用值壓入棧頂
0xbc
newarray 建立一個指定原始類型(如
int
,
float
,
char
…)的數組,並將其引用值壓入棧頂
0xbd
anewarray 建立一個引用型(如類,接口,數組)的數組,並將其引用值壓入棧頂
0xbe
arraylength 得到數組的長度值並壓入棧頂
0xbf
athrow 將棧頂的異常拋出
0xc0
checkcast 檢驗類型轉換,檢驗未經過將拋出ClassCastException
0xc1
instanceof
檢驗對象是不是指定的類的實例,若是是將
1
壓入棧頂,不然將
0
壓入棧頂
0xc2
monitorenter 得到對象的鎖,用於同步方法或同步塊
0xc3
monitorexit 釋放對象的鎖,用於同步方法或同步塊
0xc4
wide <待補充>
0xc5
multianewarray 建立指定類型和指定維度的多維數組(執行該指令時,操做棧中必須包含各維度的長度值),並將其引用值壓入棧頂
0xc6
ifnull 爲
null
時跳轉
0xc7
ifnonnull 不爲
null
時跳轉
0xc8
goto_w 無條件跳轉(寬索引)
0xc9
jsr_w 跳轉至指定
32
位offset位置,並將jsr_w下一條指令地址壓入棧頂
相關文章
1.
git經常使用指令整理及說明(詳細)
2.
jvm指令集
3.
JVM指令集
4.
JVM 指令使用
5.
mysqldump指令說明
6.
IL指令詳細
7.
MMX、SSE、AVX等SIMD指令集說明
8.
Delphi編譯指令說明
9.
dockerfile 指令簡要說明
10.
Adb logcat指令說明
更多相關文章...
•
PHP EOF(heredoc) 使用說明
-
PHP教程
•
C# 預處理器指令
-
C#教程
•
Docker 清理命令
•
算法總結-雙指針
相關標籤/搜索
指令
指令系統
語音指令
指令表
轉移指令
宏指令
詳細指南
使用說明
指明
Java
Docker命令大全
網站建設指南
MyBatis教程
命令
JVM
應用
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
JDK JRE JVM,JDK卸載與安裝
2.
Unity NavMeshComponents 學習小結
3.
Unity技術分享連載(64)|Shader Variant Collection|Material.SetPassFast
4.
爲什麼那麼多人用「ji32k7au4a83」作密碼?
5.
關於Vigenere爆0總結
6.
圖論算法之最小生成樹(Krim、Kruskal)
7.
最小生成樹 簡單入門
8.
POJ 3165 Traveling Trio 筆記
9.
你的快遞最遠去到哪裏呢
10.
雲徙探險中臺賽道:借道雲原生,尋找「最優路線」
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
git經常使用指令整理及說明(詳細)
2.
jvm指令集
3.
JVM指令集
4.
JVM 指令使用
5.
mysqldump指令說明
6.
IL指令詳細
7.
MMX、SSE、AVX等SIMD指令集說明
8.
Delphi編譯指令說明
9.
dockerfile 指令簡要說明
10.
Adb logcat指令說明
>>更多相關文章<<