Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Помогите с программой по FASM


Автор: Tanchik0611 19.10.2012, 17:30
Помогите найти ошибку в программе и исправить её( программа должна переводить данное число в текстовую строку(в десятичной системе) и выводить его на экран).

Вот текст программы:

;include 'win32w.inc'
org 100h

begin:
        mov word ax, -127
        test ax, 0x8000
        jz posit
        mov di, 1
        jmp negat
negat:
        not ax
        inc ax
        jmp divis
posit:
        mov di, 0
        jmp divis
divis:
        xor dx, dx
        inc cx
        mov word bx, 10
        idiv word bx
        push dx
        test ax, ax
        jnz divis
        test di, di
        jnz sing
        jmp output
sing:
        mov ah, 02h
        mov dl, '-'
        int 21h
        jmp output
output:
        mov ah, 02h
        dec cx
        pop dx
        add dl,30h
        int 21h
        test cx, cx
        jnz output
        int 20h



К сообщению прикреплён результат того, что у меня выдаёт.

http://s1.ipicture.ru/uploads/20121019/7X13YSXL.jpg

Автор: Чупакабро 21.10.2012, 11:05
Мне щас негде проверить, но попробуй вот так:

Код

org 100h

begin:
        mov word ax, -127
        test ax, 0x8000
        xor cx, cx
        jz posit
        mov di, 1
        jmp negat
negat:
        not ax
        inc ax
        inc cx
        jmp divis
posit:
        mov di, 0
        jmp divis
divis:
        xor dx, dx
        inc cx
        mov word bx, 10
        idiv word bx
        push dx
        test ax, ax
        jnz divis
        test di, di
        jnz sing
        jmp output
sing:
        mov ah, 02h
        mov dl, '-'
        int 21h
        jmp output
output:
        mov ah, 02h
        dec cx
        pop dx
        add dl,30h
        int 21h
        test cx, cx
        jnz output
        int 20h

мне кажется, что это из-за того, что в сх не контролируется значение

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)