gpt4 book ai didi

c - x86 JMP 操作码结构

转载 作者:行者123 更新时间:2023-12-04 12:35:08 27 4
gpt4 key购买 nike

我只是在看我用 C 编写的一个简单 exe 的 .text 部分,我只是想弄清楚一些 x86 操作码的结构。

从我一直在阅读的内容来看,0xe9 似乎是相对跳转 (JMP) 的单字节操作码,但是我不确定其余字节实际上是如何形成跳转地址的。

我正在使用 super 在线反汇编程序ODA反汇编我的程序,这是显示的内容:

.text:0x00411005    e936210000  jmp    0x00413140

所以 0xe9 是 JMP 指令,因为这是一个 32 位可执行文件,我假设接下来的四个字节将是跳转的地址,但是我有点不确定它们的实际结构。

如果有人可以帮助照亮他的光芒,我将不胜感激。

谢谢

最佳答案

这是一个相对跳转,意味着目标是相对于下一条指令给出的。

该指令位于地址 0x411005 并占用 5 个字节,因此下一条指令位于地址 0x41100a。跳转的相对数量(编码为小端,即字节从最低有效到最高有效)是 0x2136。所以跳转的目的地是 0x41100a + 0x2136 = 0x413140。

关于c - x86 JMP 操作码结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762446/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com