Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2010, 08:45   #1
Shamonya
Пользователь
 
Регистрация: 05.11.2010
Сообщений: 17
Восклицание Нужно модифицировать простетскую прогу)

Код:
outexp  proc    near
        push    ax
        push    bp
        mov     bp, sp
        push    10
        push    0
        ftst
        fstsw   ax
        sahf
        jnz     short @oe0
        mov     ah, 02h
        mov     dl, '0'
        int     21h
        jmp     short @oe2
@oe0:   fxtract
        fldlg2
        fmulp   st(2), st
        fld     st(1)
        frndint
        fsub    st(2), st
        fistp   word ptr [bp - 4]
        fxch    st(1)
;______________________________________________________
        fldl2t
        fmulp   st(1), st
; (2 ^ (q log p) = p ^ q).
        fld1
        fld     st(1)
        fprem
;________________________________________
        fsub    st(2), st
        f2xm1
        faddp   st(1), st
        fscale
        fstp    st(1)
        fmulp   st(1), st
;_________________________________________________________   
        ftst
        fstsw   ax
        sahf
        jnc     @oe5
        mov     ah, 02h
        mov     dl, '-'
        int     21h
        fchs
@oe5:   fld1
        fcomp   st(1)
        fstsw   ax
        sahf
        jbe     short @oe1
        fimul   word ptr [bp - 2]
        dec     word ptr [bp - 4]
@oe1:   call    outfloat
        mov     ah, 02h
        mov     dl, 'e'
        int     21h
fld1
fimul y
fld1
fimul word ptr[bp-4]
fadd
fistp word ptr[bp-4]
push word ptr[bp-4]
;     add y,word ptr [bp-4]   
;push word ptr[bp-4]
        call    print_n
@oe2:   leave
        pop     ax
        ret
outexp  endp

infloat proc    near

        mov y,0
        push    ax
        push    dx
        push    si
        push    bp
        mov     bp, sp
        push    10
        push    0
; ┬ SI яЁшчэръ чэрър.
@f00:   xor     si, si
        fldz
        mov     ah, 01h
        int     21h
        cmp     al, '-'
        jne     short @f1
        inc     si
@f0:    mov     ah, 01h
        int     21h
@f1:    cmp     al, '.'
        je      short @f2
        cmp     al, 39h
        ja      short @f5
        cmp     al, 30h
        jb      short @f5
        sub     al,30h
        mov     [bp - 4], al
        fimul   word ptr [bp - 2]
        fiadd   word ptr [bp - 4]
        jmp     short @f0
@f2:   fld1
@f3:   mov     ah, 01h
        int     21h
        cmp     al, 39h
        ja      short @f4
        cmp     al, 30h
        jb      short @f4
        sub al,30h
        mov     [bp - 4], al
        fidiv   word ptr [bp - 2]
        fld     st(0)
        fimul   word ptr [bp - 4]
        faddp   st(2), st
        jmp     short @f3
@f4:   fstp    st(0)
        
@f5:    test    si, si
        jz      short @f6
        fchs ;шчьхэшЄ№ чэръ
@f6:    cmp al,'e'
        jne short @f7
        call infloat2
        fistp y

@f7:    mov     ah, 02h
        mov     dl, 13
        int     21h
        mov     dl, 10
        int     21h
        leave
        pop     si
        pop     dx
        pop     ax
        ret
infloat endp
;_________________________________
infloat2 proc    near
        push    ax
        push    dx
        push    si
        push    bp
        mov     bp, sp
        push    10
        push    0
; ┬ SI яЁшчэръ чэрър.
        xor     si, si
        fldz
        mov     ah, 01h
        int     21h
        cmp     al, '-'
        jne     short f1
        inc     si
f0:    mov     ah, 01h
        int     21h
f1:     cmp     al, 39h
        ja      short f5
        cmp     al, 30h
        jb      short f5
        sub     al,30h
        mov     [bp - 4], al
        fimul   word ptr [bp - 2]
        fiadd   word ptr [bp - 4]
        jmp     short f0
        
f5:     test    si, si
        jz      short f6
        fchs ;шчьхэшЄ№ чэръ
f6:     mov     ah, 02h
        mov     dl, 13
        int     21h
        mov     dl, 10
        int     21h
        leave
        pop     si
        pop     dx
        pop     ax
        ret
infloat2 endp
Проблема вот в чём нужно сделать так чтобы можно было ввести числа типо 1A,023Eh ну или 10011,1110000b
Вывести должно научного представление этого числа в научной форме

Последний раз редактировалось Stilet; 11.11.2010 в 09:22.
Shamonya вне форума Ответить с цитированием
Старый 11.11.2010, 09:51   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Shamonya
Нужно? Так модифицируй, она ж "простетская"...
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать прогу DJon82 Фриланс 6 23.08.2010 16:00
нужно написать прогу master233 Microsoft Office Access 0 12.04.2010 15:40
Нужно написать прогу на С++ Михаил Борисович Помощь студентам 2 06.01.2009 10:39
HELP! Нужно подкоректировать прогу на СИ. NEWLOGIN Помощь студентам 3 10.05.2008 18:11