如何解决当前出现的错误?

How do i fix the current error I am getting?

提问人:Rebeca 提问时间:11/16/2023 最后编辑:Scott HunterRebeca 更新时间:11/16/2023 访问量:56

问:

在此处输入图像描述我的代码中出现第 6 行、第 7 行和第 13 行的错误,有人可以向我解释如何修复它吗? 它说“在没有 /LARGEADDRESSAWARE:NO 的情况下重新定位到'displayword'无效 这是一个完整的代码,可以在组装时玩刽子手游戏。

[在此处输入图片描述]

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

程序集 64 位 NASM

评论

6赞 ewokx 11/16/2023
欢迎使用 Stack Overflow。请将您的代码作为文本包含在内。
0赞 Scott Hunter 11/16/2023
这是哪种汇编语言?
0赞 Joshua 11/16/2023
@ScottHunter:LNK2017非常具体。;我很确定 OP 也使用 nasm 语法,因为resb
1赞 David C. Rankin 11/16/2023
欢迎使用 Stack Overflow。请尽快阅读“关于”页面,并访问描述如何提问如何创建最小完整可重复示例的链接(在问题本身中以文本形式发布)。提供必要的详细信息,包括您的 MCRE、编译器警告和相关错误,以及示例数据(如果有),将使这里的每个人都能帮助您解决问题。

答:

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'~'