Wyciągnięcie liczby z koprocesora

0

Wiedąc, że w zmiennej "liczba" mam liczbe zmiennoprzecinkową. Działania były wykonywane na koprocesorze.
Chcę ja "wyciągnąć do rejestru AX. No właśnie - jak?

Gdzieś widziałem, że wystarczy do tego jedna komenda

FSTSW AX
(fstsw napisałem z pamięci, więc mogę się mylić.)

fstp  Liczba  ;;; kopiowanie wyniku ze stosu do zmiennej liczba 
Koniec:
fld  Liczba  ;;; kopiowanie liczby do rejestru st do wyswietlenia w C++

Generalnie po co mi to? W C++ była wprowadzona ta liczba, coś z nią było robione w asemblerze, i ma być ponownie wyprowadzona w C++. To wszystko jest. Pozostało mi wypisanie poszczególnych bitów dotyczący znaku, mantysy. A do tego właśnie potrzebuje wyciągnąć tą liczbę do AX.

0

ZTCP pod koprocesorami 387 czy podobnymi nie ma możliwości przeniesienia danych ze stosu koprocesora bezpośrednio do rejestrów ogólnego przeznaczenia. Jedyną możliwością jest najpierw zapisanie zmiennej do pamięci, a potem załadowanie z pamięci. Natomiast jeżeli chodzi ci o duplikowanie zmiennych na stosie koprocesora to ZTCP są do tego instrukcje.

0

ZTCP?

Hmm, no prowadzący laboratoria powiedział, że wyciągnięcie tego do rejestru ogólnego przeznaczenia to jedna linijka. Także trochę teraz jestem w kropce : (

0
push eax
fistp [esp]
pop eax

3 linijki, fajny tutorial o FPU na http://www.website.masmforum.com/tutorials/fptute/index.html

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