我需要立即地址是64个比特宽,这根据英特尔手册应完全有可能的指令movlps。所以,这样的事情:

movlps xmm0, [0x7fffffffffa0]

但是,所有我所得到的是NASM截断操作数大小为32位和打印相应的警告:

sample.s:6: warning: dword data exceeds bounds

我试图与没有成功不同形式的qword的前缀。

有帮助吗?

解决方案

最x64的指令不采取64位IMMED。

除非我很错,你必须通过RAX寄存器移动。

其他提示

我不认为你可以做到这一点。 movlps加载或存储一个这是64个位宽,但是立即地址和位移仍然限制在32位的总称。你能做的最好的是

mov rax, 0x7fffffffffa0
movlps xmm0, [rax]

(第一mov可能需要movabs;我并不真正知道英特尔语法组件)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top