浮点数总是 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]
这里应该是什么,而不是负号。
我正在尝试处理 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]
这里应该是什么,而不是负号。