2015-04-28 28 views
0

什麼是理:NASM:爲什麼必須將__float32 __(1.5)用於浮點文字而不是1.5?

mov eax, 1.5 

不工作:

expression syntax error 

,並要求你做的事:

mov eax, __float32__(1.5) 

呢?它適用於dd系列的事實:

dd 1.5 

讓我更加好奇。

在這種情況下,會出現與某些其他語言功能的語法歧義嗎?

無法在大小僅僅是從寄存器的大小推斷爲當我們這樣做:

mov eax, 1 

我也張貼在他們的錯誤追蹤系統,但至今沒有答覆:http://bugzilla.nasm.us/show_bug.cgi?id=3392309

回答

0

Cyrill Gorcunov replied that

這是因爲@dd是一個與mov分開處理的指令(我們在裏面有兩個tokenizer)。我們真的希望有一天統一他們,但由於缺乏人力,它仍然沒有實施。

所以基本上沒有衝突,只是歷史的不一致而已,可能有一天會得到修正。

相關問題