NASM - The Netwide Assembler
NASM Forum => Using NASM => Topic started by: stphanef on October 04, 2007, 11:07:10 PM
-
Hi.
I compiled this code with NASM 0.99.04:
-------------------
org 0x100
section .data
numberA: dq 1.54
numberB: dq 2.
numberC: dq 0.1
section .bss
section .text
start:
finit
fld qword [numberA]
fld qword [numberB]
fld qword [numberC]
fld1
fldpi
ret
--------------------------------
Then I ran it inside the D86 debugger and I got the followindg FPU stack:
ST0: +3.1415 ..... (as intended)
ST1: +1. (as intended)
ST2: +0.2000... (2 time numberC)
ST3: +4. (2 time numberB)
ST4: +3.08000... (2 time numberA)
NASM doubles every value! I did a quick fix so the code would compile with A86:
--------------------------------
org 100h
jmp start
;section .data
numberA: dq 1.54
numberB: dq 2.
numberC: dq 0.1
;section .bss
;section .text
start:
finit
fld qword [numberA]
fld qword [numberB]
fld qword [numberC]
fld1
fldpi
ret
-----------------------------------
Now the D86 debugger report the FPU stack I expected:
ST0: +3.1415....
ST1: +1.
ST2: +0.1000...
ST3: +2.
ST4: +1.54000...
Did I do something wrong?
Thank.
sf.
-
sorry to reply to myself.
I recompiled with NASM 0.98.39 and everything is OK.
I suspect a serious bug with NASM 0.99.04.
Thank.
sf.
-
I suspect you're correct! :)
We're looking at it. Thanks for the feedback! You'd think someone would have noticed before now, but... I guess we don't do much floating point...
Best,
Frank