浮点数总是 returns 0

Floating Point always returns 0

我正在尝试处理 NASM 中的浮点数,但我似乎无法弄清楚我做错了什么。这个程序总是给我返回 0.000000,我真的看不出错误在哪里。

extern printf
extern scanf

SECTION .data
junk: dq 7.6
temp: dq 0
print_float: db "%f",10,0
SECTION .bss

SECTION .text

global main
main:
    push ebp
    mov ebp,esp

    finit

    fld qword[junk]
    fst qword[junk]

    push dword [junk-4]
    push dword [junk]
    push dword print_float
    call printf
    add esp,12  

    mov esp, ebp
    pop ebp 
    mov eax,0
    ret 

感谢 rkhb 对这个问题的回答。

push dword[junk+4]

这里应该是什么,而不是负号。