hier ein Tipp wie Ihr float Zahlen mit printf ausgeben könnt:
Code: Alles auswählen
.data
ausgabe: .string "Der Ergebnisvektor enthaelt folgenden Werte: %f %f %f\n"
vek: .float 4.0, 3.0, 2.0, 1.0
.text
.globl main
main:
leal vek, %esi #Lade Addresse von vek in %esi
fld 8(%esi) #Pushe Wert von %esi an Stelle 8 in das ST(0) Register der FPU
subl $8, %esp #Erstelle 8Byte freien Speicher auf Stack
fstpl (%esp) #Pope Wert von ST(0) in den Wert, der von (%esp) dargetellt wird. Hierbei wird der Wert auf im Speicher geändert.
#Zu beachten: %esp ist der Stack, also wird die Zahl als 8Byte Variable auf den Stack gepusht.
fld 4(%esi)
subl $8, %esp
fstpl (%esp)
fld 0(%esi)
subl $8, %esp
fstpl (%esp)
pushl $ausgabe
call printf
.exit:
movl $1, %eax
int $0x80
Gruß
Mike