提问人:Rebeca 提问时间:11/16/2023 最后编辑:Scott HunterRebeca 更新时间:11/16/2023 访问量:56
如何解决当前出现的错误?
How do i fix the current error I am getting?
问:
在此处输入图像描述我的代码中出现第 6 行、第 7 行和第 13 行的错误,有人可以向我解释如何修复它吗? 它说“在没有 /LARGEADDRESSAWARE:NO 的情况下重新定位到'displayword'无效 这是一个完整的代码,可以在组装时玩刽子手游戏。
[在此处输入图片描述]
答:
0赞
Joshua
11/16/2023
#1
在映像快照中看不到此问题。
问题是你有一些代码看起来像这样:
mov rsi, secretword
(或者也许是指令;真的是一样的区别)lea
此类指令的最大偏移限制为 32 位。
您真正想要做的是发出以下内容:
lea rsi, [rel secetword]
现在,它的加载位移在2GB以内;并且该指令存在。这咬了我一次。此指令也不存在:
lea rsi, [rel secetword + rbx]
当我尝试它时,我的汇编器是哑巴并发出
lea rsi, [secetword + rbx]
相反,这导致了相当头痛的追踪。
有一个 64 位指令mov
mov rax, qword secretword
但我不知道 Windows 构建工具是否可以发出适当的修复。
评论
0赞
Rebeca
11/16/2023
我添加了我的整个代码,你能看一下吗
2赞
Joshua
11/16/2023
@Rebeca:一些带有符号的 [] 操作标有偏移量,有些则没有。但是,为什么我会看到 Windows 链接器错误和 Linux 32 位特定系统调用门?
2赞
David C. Rankin
11/16/2023
@Rebeca,请将您的代码复制/粘贴到问题中,并粘贴到代码放入前的行(这些是反引号)和代码放置后的行中,以将代码格式化为固定文本,并突出显示语法。对于普通文本(无突出显示),只需省略顶行的部分即可。后引号位于键盘左上角,与大多数键盘上的键相同(在 ESC 下)。```asm
```
asm
'~'
评论
resb