彙編 JMP 詳解

2022-04-15 09:26:53 字數 749 閱讀 2355

rva:相對虛擬位址(relative virtual address),在記憶體中相對於pe檔案裝入位址的偏移位置,是乙個相對位址。

短跳轉(short jmp,只能跳轉到256位元組的範圍內),對應機器碼:eb

短跳轉近跳轉指令中包含的運算元都是相對於(e)ip的偏移

遠跳轉指令中包含的是目標的絕對位址

所以短/近跳轉會出現跳至同一目標的指令機器碼不同,不僅會不同,而且應該不同。

而遠跳轉中包含的是絕對位址,因此轉移到同一位址的指令機器碼相同 。

至此,我們知道了跳轉指令所對應的機器碼根據e(ip)計算出來的,那到底是怎麼計算的呢?

目標位址 = 當前指令位址 + 指令長度 + rva

在計算機中使用上面的公式計算結果就是 rva = 1 所以後面應該是跟 e9 01 00 00 00

其中 5 是指令長度 e9 後面需要跟 4 位元組的位址,所以指令(1)+位址(4) = 5

ps: 如果計算結果是負數,則數值後面應該用 ff 填充,如負一則應該用 e9 01 ff ff ff

8086 彙編 jmp 指令

功能 修改cs ip的指令 可以通過改變cs ip中的內容,來控制cpu要執行的目標指令。背景 一般情況下指令是順序地逐條執行的,而在實際中,常需要改變程式的執行流程。轉移指令,短轉移 jmp short 標號 功能 ip ip 8位位移 原理 1 8位位移 標號 處的位址 jmp指令後的第乙個位元...

彙編轉移指令jmp原理

在計算機中儲存的都是二進位制數,計算機將記憶體中的某些數當做 某些數當做資料。在根本上,將cs,ip暫存器所指向的記憶體當做 指令轉移就是修改cs,ip暫存器的指向,彙編中提供了一種修改它們的指令 jmp。jmp指令可以修改ip或cs和ip的值來實現指令轉移,指令格式為 jmp 標號 將指令轉移到標...

彙編 JMP和CALL的區別

jmp jmp test1 test1 jmp test2 test2 jmp test3 call call test1 test1 proc near call test2 rettest1 endp test2 proc near call test3 rettest2 endp 其實還沒學子...