如何在asm中使用浮点堆栈乘2个数字(用户输入)?



我创建了一个PROC,它将收集用户输入的余额、利率和;单独文件中的期限长度(年数)。利率是一个浮点数(小数-不是整数)。我不确定我的余额是否需要转换为浮点数以乘以汇率。

然后,我在单独的文件中原型化该PROC,并在main下调用。我需要使用这个公式:利息=余额*利率/100.0;计算利息。我在努力把余额和速率相乘。请建议。这段代码只是在main中自己乘以利率。

fmul ST(0), ST(0)
call writeFloat

平衡。asm PROC

yearlyBalance PROC
mov edx, OFFSET balanceNum
call writeLine
call readInt
fst bal
fld bal

mov edx, OFFSET interestRate
call writeLine
call readFloat
mov edx, OFFSET years
call writeLine
call readInt
endl 
ret
yearlyBalance ENDP

main.asm

main PROC
call yearlyBalance

fmul ST(0), ST(0)
call writeFloat 
endl
exit
main ENDP 
END main

使用readFloat来放置堆栈顶部的第一个值ST(0) (1st readFloat)

使用readFloat将value放在栈顶ST(0),并将第一个压入ST(1)(第二个readFloat)

使用fmul ST(0), ST(1)将两个数相乘,并将结果放在ST(0)

最新更新