我正在尝试除以两个整数并得到浮点数,然后在结果部分显示浮动。问题是,它现在显示为一个非常大的整数,我不知道我是否做得对。
代码:
定义:
floatVal REAL4 0.0f
numCount SDWORD 0
nextNum SDWORD 0
totalSum SDWORD 0
averageNum SDWORD ?
有问题的代码:
fild totalSum
fidiv numCount
fstp floatVal
然后再显示:
mov edx, OFFSET average_1
call WriteString
mov eax, floatVal
call WriteDec
call CrLf
我正在使用irvine32库,这是我尝试在汇编语言中使用float的第一次尝试。
答案 0 :(得分:1)
虽然32位浮点意外地适合eax
寄存器,但WriteDec
函数需要一个整数,因此将位模式解释为产生非预期的输出。浮点数不会直接映射到整数。
您应该将结果转换为整数或找到打印浮动的方法。
如果您只是感兴趣,是否正确使用调试器。顺便说一句,你发布的代码似乎是正确的。