问题描述
我正在尝试打印存储在 XMM1
中的值 (double)。为了让事情更简单,我决定使用 printf
。当我编译 32 位时,我可以将 printf
的参数放在堆栈上。所以我想做:
push xmm1
mov al,1
call printf
当然不行。所以现在我的问题是如何正确地做到这一点?
例如 here 有一行 mov rax,12345
,问题是 NASM 不会让我这样做,因为它声称它不适用于 32 位。即使我将代码更改为 64 位,我仍然收到此警告。
[EDIT1]
现在我想出了这样的事情:
sub esp,16
movdqu oword [esp],xmm1
push format
call printf
好消息是,它可以编译但不打印任何内容...
[EDIT2]
对于任何想知道的人,这是工作版本:
movdqu oword [esp],xmm1
push format
call printf
其中格式是具有格式类型等的字符串
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)