gpt4 book ai didi

windows - 如何在 NASM 中减去两个数并得到负数?

转载 作者:可可西里 更新时间:2023-11-01 10:33:11 35 4
gpt4 key购买 nike

我有这段代码应该减去两个数字,一个 float (10.25) 和一个整数 (15):

extern _printf
global _main
section .bss
num1: resb 4
num2: resb 4
section .data
format_number: db "%f", 10, 0
section .text
_main:

mov dword [num1], 15
mov dword [num2], __float32__(10.25)

sub esp, 8
fild dword [num2]
fsub dword [num1]
fstp qword [esp]
push format_number
call _printf
add esp, 12

ret

我得到的输出是:

1092878336.000000

我期望的输出是:

-4.750000

如何得到我期望的结果?

最佳答案

解决方法是:

extern _printf
global _main
section .bss
num1: resb 4
num2: resb 4
section .data
format_number: db "%f", 10, 0
section .text
_main:

mov dword [num1], 15
mov dword [num2], __float32__(10.25)

sub esp, 8
fld dword [num2]
fisub dword [num1]
fstp qword [esp]
push format_number
call _printf
add esp, 12

ret

我得到的输出是:

-4.750000

感谢@MichaelPetch,您的回答就是解决方案。 ^_^

关于windows - 如何在 NASM 中减去两个数并得到负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184689/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com