ASM浮点单元给出错误的数字

时间:2013-04-20 10:15:42

标签: assembly floating-point x86 x87

我正在使用ASM中的浮点单元制作更大的程序,但我得错了数字。我做了一个简单的代码,它也给出了错误的数字。有谁知道为什么?这有什么不对?我正在使用ubuntu 32b。

SYSEXIT = 1

.align 32
.data

a: .float 1
b: .float 2
test1: .float 0

.text
.global main

main:

finit 
fld a
fld b

loop:
fmulp
fstp test1

mov $SYSEXIT, %eax
int $0x80

我正在使用gdb,在“打印”之后,它显示的是大数而不是1,而其他2个变量(b,test1)则相同。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

您需要使用print/f a来解释和打印数字作为浮点值而不是整数。

Reference