【发布时间】:2016-07-18 10:39:53
【问题描述】:
我如何知道 MASM 是使用相对偏移还是绝对偏移对我的 JMP 指令进行编码?
我知道 x86 为相对偏移和绝对偏移提供 JMP 操作码。
我想确定我的跳跃是相对的,但是我找不到任何合适的 MASM 文档来告诉我 JMP @label 是否真的转化为相对跳跃。
如果可能,请在答案中提供文档链接。
对于相反的问题:
如果您试图让 MASM 发出直接绝对远距离jmp
【问题讨论】:
-
反汇编目标文件? (也许一些 MASM 大师会提供更简单的方法来指定 jmp 应该是相对的,或者通过在源代码中标记它,或者通过将编译设置为 PIC(与位置无关的代码),但最后的反汇编总是在这里)。
-
是的,但我希望有一些严格的文档。
-
JMP label总是相对的,除非它是一个很大的跳跃并且你知道;) -
@Jester:我可以想象一个汇编程序有一个“巨大的代码模型”选项,该选项将跳转到来自文字池的内存间接跳转。当然,据我所知,没有现有的汇编器实现这个虚构的功能,所以我同意这里没有什么可担心的。
标签: windows assembly windows-10 masm