所以我存盤了一個值number: .word 0,我轉換該浮點并將其存盤在 $t1 但是當我使用 bltz 詢問存盤在 $t1 中的值是否小于零時,它永遠不會分支到“負”函式?
s.s $f12, number
la $t0, number
ldc1 $f2,0($t0) # Load double floating point number
cvt.w.d $f2, $f2
mfc1 $t1, $f2 # Take the integer in FP Reg and put into $t1
bltz $t1, Negative
uj5u.com熱心網友回復:
您正在混合資料型別(單浮點和雙精度),所以我很困惑(也許還有處理器)。
s.s使用浮點表示、IEEE 754、單精度、4 位元組大小將浮點數存盤到記憶體中。
然后,您從同一個記憶體位置將其作為雙精度、8 位元組大小(不是)加載到 $f2 中,并告訴處理器將此雙精度轉換為整數。當您只提供和存盤 4 個位元組時,您期望加載一個 8 位元組的值得到什么值?
您是否嘗試在執行此操作時查看各種(例如浮點)暫存器中的值?
僅供參考,處理器可以將浮點比較用于條件分支,而無需將浮點值轉換為整數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468263.html
上一篇:將rax暫存器的最高位設定為rdx暫存器中的最低位的最快方法
下一篇:mul和mulu之間的確切區別
