套用一句安德罗妮的话,一些小tips:
1. 这段只是简单的把一个float num 存进 一个SEE 的xmmregister 中。这种方法可以不用人工转换,第一句起到了和 mov rax,0x400921fb54442d18一样的作用
mov rax, __float64__(3.14) ; move a 64 bit float 3.14 into rax
push rax ; push rax to stack
movsd xmm10, [rsp] ; move the 3.14 into xmm10
pop rax
http://www.nasm.us/doc/nasmdoc3.html
2. 当在asm中使用c的function列如 printf 和 scanf 非常容易吧前10个 xmm registers 清空,所以如果有重要数据尽量从后面的xmm register开始存
本文介绍了一种将浮点数3.14直接存入汇编语言 xmm 寄存器的方法,避免了手动转换的过程。此外,还讨论了在 asm 中调用 C 函数(例如 printf 和 scanf)时,如何管理 xmm 寄存器以防止意外覆盖关键数据。
1216

被折叠的 条评论
为什么被折叠?



