FPU (NASM/YASM)

Модератор: Модераторы разделов

BratSinot
Сообщения: 812
ОС: Slackware64

FPU

Сообщение BratSinot »

Доброго времени суток!

Беда....

Код: Выделить всё

    fld dword [ONE] ; Заталкиваем еденицу
    fld dword [qwe] ; Заталкиваем число
    xor ecx,ecx
.again1:
    FPREM                ; Делаем st0=st0 mod st1
    fcom dword [NULL]   ; Сравниваем st0==0?
    fstsw ax     ; Переносим
    sahf            ; флаги
    je .end1      ; И здесь должно перейти, если st0==0, но оно не переходит!

    fmul dword [des]
    fist dword [tmp]
    mov eax, [tmp]
    add eax, 48
    mov [esp], al
    dec esp
    inc ecx
    jmp .again1
.end1


Хотя я тут подумал и решил сделать вывод проще. Я возьму целую часть и выведу её, потом получу остаток от деления на 1, умножу, скажем, на 1000000.0, получу целую часть и выведу.
Спасибо сказали: