jmp指令的分段错误

问题描述 投票:0回答:1

对于一个项目,我为特定语言编写了一个编译器。我必须处理异常。我的问题在于汇编代码。我在jmpq指令上遇到分段错误,我不明白为什么。

这是代码的摘录:

    jmpq *.finally_27
    [...]
.finally_27:
    [...]

ddd指出我是行jmp导致分段错误,但我不明白为什么。为什么jmpq指令会失败?

完整的代码在这里:http://pastebin.com/E2AbW158

错误发生在311行。

assembly x86 x86-64
1个回答
3
投票

当你使用带有标签的JMP时,你不应该包含'*',否则你会说:“跳转到存储在内存地址finally_27的四字中的地址位置”

你想要:“跳转到值为finally_27的地址位置”,所以它是:

JMP .finally_27

JMPQ *.finally_27

© www.soinside.com 2019 - 2024. All rights reserved.