我试图将64位寄存器中的数字移动到xmm寄存器来进行算术运算。我的想法是:
movq xmm1, r14
在我的程序中,r14持有计数器,我需要它移动到xmm1,所以我可以将它除以我存储在xmm0中的数字之和。然后显示它。
当我执行代码时,它将0存储到xmm1。
有人请帮忙。
答案 0 :(得分:2)
我创建了test.asm
:
section .code
global _start
_start:
mov r14,0x123456789abcdef0
movq xmm1, r14
int 3
编译并链接:
nasm.exe -f win64 -o test.obj test.asm
link.exe test.obj /entry:_start /subsystem:console
在64位WinDbg下运行它。当它点击int 3
WinDbg时显示寄存器为:
r14 123456789abcdef0
xmm1 0.000000e+000: 0.000000e+000: 5.690457e-028:-7.811515e-023
xmm1/0 9abcdef0
xmm1/1 12345678
xmm1/2 0
xmm1/3 0
xmm1l 1234:5678:9abc:def0
xmm1h 0:0:0:0
...并且输入了所有这些内容后,您是否可能将xmm1
视为浮点而不是整数值?