我有一段代码示例,它将xmm6寄存器的值写入内存位置。代码在NASM中:
value:
dd 0
movq [value], xmm6
但是当我尝试将其编译为macho64格式时,我收到错误:
64位格式不支持32位绝对地址。
有没有办法解决这个问题?我是x86_64程序集的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
我似乎已经通过自己的问题解决了:
value:
dd 0
default rel
movq [value], xmm6
这有效吗?
答案 1 :(得分:2)
你必须告诉汇编程序你不会指向8字节的内存位置:
movq qword[value], xmm6