Mach-O 64位格式不支持32位绝对地址

时间:2010-07-03 07:24:18

标签: assembly macos x86-64

我有一段代码示例,它将xmm6寄存器的值写入内存位置。代码在NASM中:

value:
    dd 0

movq [value], xmm6

但是当我尝试将其编译为macho64格式时,我收到错误:

  

64位格式不支持32位绝对地址。

有没有办法解决这个问题?我是x86_64程序集的新手,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

我似乎已经通过自己的问题解决了:

value:
    dd 0

default rel
movq [value], xmm6

这有效吗?

答案 1 :(得分:2)

你必须告诉汇编程序你不会指向8字节的内存位置:

movq qword[value], xmm6