有些指令, 可能自己曾經沒記住, 或不理解為啥是這樣命名, 在這裡記錄一下.
在指令手冊中是找不到retn的, 只有ret.
在ida和od中可以看到助記符寫為retn.
這是因為retn代表 ret near procedure
retn返回的位址離ret所在的位址都很近.
為當前函式設立棧幀
乙個帶殼的程式,上來就是這麼一句.
enter 0x18c,0x0
看指令說明,比對既存器變化, 可以看到指令效果:
push ebp
sub esp, 0x18c
看後續指令的用法就明白了,可以使用mov [ebp-xx], esi這樣的指令,操作新開闢的棧幀內的記憶體位址內容.
只要操作的[ebp-xx]的xx值在0~0x18c之間就是合法的.
JVM指令助記符
以下只是jvm指令助記符,關於jvm指令的詳細內容請閱讀 jvm指令詳解 變數到運算元棧 iload,iload lload,lload fload,fload dload,dload aload,aload 運算元棧到變數 istore,istore lstore,lstore fstore,fs...
JVM 指令助記符
iconst m1 iconst 0 iconst 1 iconst 2 iconst 3 iconst 4 iconst 5 lconst 0 lconst 1 fconst 0 fconst 1 dconst 0 dconst 1 bipush sipush ldc ldc w ldc2 w l...
JVM指令助記符
以下只是jvm指令助記符,關於jvm指令的詳細內容請閱讀 jvm指令詳解 變數到運算元棧 iload,iload lload,lload fload,fload dload,dload aload,aload 運算元棧到變數 istore,istore lstore,lstore fstore,fs...