小编reg*_*_mr的帖子

为什么我不能将 64 位值移动到 64 位寄存器?

当它编译汇编代码(如先前认为的 x64)并尝试将以下数据加载到堆栈中时,我有一个问题:

mov rax, "AAAAAAAAA"; flax == 9
push rax
Run Code Online (Sandbox Code Playgroud)

得到消息:

warning: character constant too long [-w + other]
Run Code Online (Sandbox Code Playgroud)

我知道这只是一个警告,但我认为它在 64 位寄存器上运行,这也由它们的名称指示。

系统是 64 位 Debian(我认为)。该程序还编译为 64 位二进制文​​件:

nasm - f elf64
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释,或者至少给我一些关键字,如何深入研究这个主题:)

64-bit assembly x86-64 nasm

2
推荐指数
1
解决办法
66
查看次数

标签 统计

64-bit ×1

assembly ×1

nasm ×1

x86-64 ×1