簡體   English   中英

x86 JMP操作碼結構

[英]x86 JMP opcode structure

我只是看一下我在C中編寫的一個簡單exe的.text部分,我只想弄清楚一些x86操作碼的結構。

從我一直在閱讀的內容來看,似乎0xe9是相對跳轉(JMP)的單字節操作碼,但是我不確定其余的字節實際上是如何構成跳轉地址的。

我正在使用超級在線反匯編程序ODA來反匯編我的程序,這就是顯示的內容:

.text:0x00411005    e936210000  jmp    0x00413140

因此0xe9是JMP指令,因為這是一個32位可執行文件,我假設接下來的四個字節將成為跳轉的地址,但是我不確定它們是如何實際構造的。

如果有人能幫助他發光,我會很感激。

謝謝

這是一個相對跳轉,意味着目標是相對於下一條指令給出的。

該指令位於地址0x411005並占用5個字節,因此下一條指令位於地址0x41100a。 跳轉的相對量(編碼為little-endian,即字節從最低有效位存儲到最高有效位)是0x2136。 所以跳轉的目的地是0x41100a + 0x2136 = 0x413140。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM