我已存儲在FDIV如何在NASM使用它,組件
fstp qword [ebx] ; Copy contents of st0 to space currently on top of the system stack
如何按存儲在寄存器EDI的整數值除以它的總和值?
我以爲那只是
fdiv edi
但它說的無效組合....等等等等blha
見解?
我已存儲在FDIV如何在NASM使用它,組件
fstp qword [ebx] ; Copy contents of st0 to space currently on top of the system stack
如何按存儲在寄存器EDI的整數值除以它的總和值?
我以爲那只是
fdiv edi
但它說的無效組合....等等等等blha
見解?
你不能。 FPU無權訪問整數寄存器。
正如Jens在他的回答中所述,FPU沒有任何直接訪問整數寄存器的權限。您將需要使用暫存內存進行傳輸。這是x87 FPU的主要缺點之一。示例代碼可能看起來像:
section .bss
fpscratch: resd 1
...
section .text
;other code goes here
MOV fpscratch, edi
FILD fpscratch
FDIV
(在上面的代碼注意:它沒有經過測試,很明顯,我在我的組裝有點生疏所以有可能出錯了它,即使它的好和短期)
我想也許這會工作FSTP四字[EBX]; ST0的內容複製到空間目前系統堆棧 \t FLD \t四字的頂部\t [edi] \t;將edi移動到FPU上 \t fdiv \t \t \t;劃分? \t fstp \t qword \t [ebx] \t;複製結果打印出來 – John 2011-03-19 00:18:03
爲什麼不只是推edi,fdiv [esp]? – 2011-03-19 04:29:10