[asm] wczytaj i wyswietl liczbe

0

Witam! Mam taki oto program, wczytuje liczbe, ale wyswietlaja mi sie jakies bzdury - przewaznie "1805" :| Bardzo prosze o pomoc, o jakas wskazowke chociaz :)

Pozdrawiam

.286
.model tiny
.stack 100h

.code
    start:

    xor bx,bx
  ODCZYT:
    cmp bx,6552
    ja KONIEC_ODCZYTU
    mov ah,7
    int 21h
    xor dx,dx
    mov dl,al
    cmp dl,13
    je KONIEC_ODCZYTU
    cmp dl,'0'
    jl ODCZYT
    cmp dl,'9'
    jg ODCZYT
    mov ah,2
    int 21h
    sub dl,'0'

    push dx
    mov ax,bx
    mov cx,10
    mul cx
    pop dx
    add ax,dx
    mov bx,ax
    jmp ODCZYT

  KONIEC_ODCZYTU:
    xor bx,bx

  PODZIEL:
    xor dx,dx
    mov cx,10
    div cx
    push dx
    inc bx
    cmp ax,0
    jne PODZIEL
    mov cx,bx

  WYPIS:
    pop dx
    add dl,'0'
    mov ah,2
    int 21h
    loopnz WYPIS


    mov ax,4C00h
    int 21h
    end start
    end
0

Jest tak

  KONIEC_ODCZYTU:
    xor bx,bx

A powinno byc tak

  KONIEC_ODCZYTU:
    mov ax,bx
    xor bx,bx

Musisz przecież dzielić tą liczbe, a nie coś przypadkowego. A po prostu ją zerowałeś. Polecam abyś kożystał z debugera debug.exe który jest standardowo w każdym windows lub zaopatrzył się w jakikolwiek.

0

dzieki wielkie, dziala.

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