[asm]float to str

0

witam potzrebuje algorytm zamiany liczby zmiennoprzecinkowej na string, umiem juz napisac zamiane liczby dziesietnej, ale jesli uzywam koprocesora arytmetycznego i robie jakies obliczenia gdzie wychodza ulamki to jak jest to zapisane w np : moja_zmienna dd 0

mov zmienna,2
fld zmienna
fsqrt

i mam jakis wynik potem go przypisuje do zmiennej, i jest on niecalkowity i potrzebuje go wypisac na ekranie, i moje pytanie: jak w zmiennej bedzie zapisany wynik ?? jak czytac poszczegolne bajty zeby odroznic czesc calkowita od ulamkowej ?? prosze o pomoc

0

mov zmienna,2
fld zmienna
fsqrt

Tu jest błąd fld ładuje np. float, nie int

Są liczby całkowite i rzeczywiste.

mov n, 7 ; całkowita
fild n ; fild - ładowanie całkowitej
fsqrt
fst f ; tu mamy f = sqrt(7.0) w zapisie zmiennoprzecinkowym (float, double, long double)
fist n ; tu mamy n = 3 = round(sqrt(7)), zakładając domyślne ustawienia koprocesora

fisub n ; odejmujemy integer
fstp fract ; fract = f - n

1 użytkowników online, w tym zalogowanych: 0, gości: 1