【发布时间】:2018-04-08 01:20:09
【问题描述】:
我有一些程序集,其中以下几行导致 nasm 抱怨 impossible combination of address sizes 和 invalid 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指令