【问题标题】:impossible combination of address sizes and invalid effective address on simple operation简单操作时地址大小和无效有效地址的不可能组合
【发布时间】:2018-04-08 01:20:09
【问题描述】:

我有一些程序集,其中以下几行导致 nasm 抱怨 impossible combination of address sizesinvalid effective address

mov [rbp], eax
mov [rbp - 4], eax
mov edi, [rbp]
mov esi, [rbp - 4]
mov edi, [rbp - 8]
mov [rbp - 8], eax

这是为什么?

【问题讨论】:

  • 可能是因为您组装文件的方式。由于此代码是 64 位,如果您在 Linux 上使用 -f elf64,请在 OS/X 上使用 -f macho64。否则,在您的文件中,您必须在代码之前放置 bits 64 指令

标签: assembly x86 nasm x86-64


【解决方案1】:

Michal Petch 指出的愚蠢错误。

忘记添加-f macho64 标志(Linux 上为-f elf64)。

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2014-08-15
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多