Assembly 未按顺序调用SSE指令

Assembly 未按顺序调用SSE指令,assembly,sse,masm32,Assembly,Sse,Masm32,你好, 我刚开始组装,所以我不是专业人士,今天早上我已经试过这段代码 fItem real4 2321.3 main proc cvtss2si eax, xmm0 print str$(eax), 13, 0 movss xmm0, fItem ret main endp 我用的是masm32,所以我有打印宏, 问题是,即使打印后我将fItem移动到xmm0,eax的输出也是2321,所以我不确定会发生什么。 提

你好,

我刚开始组装,所以我不是专业人士,今天早上我已经试过这段代码

fItem real4 2321.3
    main proc
        cvtss2si eax, xmm0
        print str$(eax), 13, 0
        movss xmm0, fItem
        ret
    main endp
我用的是masm32,所以我有打印宏, 问题是,即使打印后我将fItem移动到xmm0,eax的输出也是2321,所以我不确定会发生什么。
提前感谢您的回答:)。

很可能是未定义的行为,因为
xmm0
未初始化。它仍然打印2321的事实要么纯粹是偶然的,要么
xmm0
在调用
main
之前以
fItem
中的值结束。这不是偶然的,因为我更改了值并仍然打印它,它可能是初始化,但我一直在查看VC11++汇编输出,无法进行任何初始化。其他地方可能有其他代码,或者在不同的对象文件中(如调用
main
)的CRT),或者它可能是init段的一部分。