我正在尝试除以两个整数并得到一个浮点数,然后在结果部分中显示浮点数。问题是,它现在显示为一个非常大的整数,我不知道我做得对不对。
代码:
定义:
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库,这是我第一次尝试在汇编语言中使用浮点。
发布于 2013-07-28 01:15:52
虽然32位浮点数意外地符合eax寄存器,但WriteDec函数需要一个整数,因此将位模式解释为产生意外输出。浮点数不会以这种方式直接映射到整数。
您应该将结果转换为整数,或者找到打印浮点数的方法。
如果您只是感兴趣,您是否做得对,使用调试器。顺便说一下,你发布的代码似乎是正确的。
https://stackoverflow.com/questions/17903932
复制相似问题