TASM - Podanie zakresu liczb przez użytkownika i wypisanie go.

0

Witam
Mam problem z zadaniem w Asemblerze. Polega ono na tym aby napisać program, który będzie pobierać 2 cyfry z klawiatury i wypisywać zakres tych cyfry. Przykładowo: podajemy 9 i 4 to program wypisuje:9, 8, 7, 6, 5, 4. Można korzystać ze stosu
Tyle napisałem ale nie wychodzi mi:
[code]
DSTACK SEGMENT STACK
DB 64 DUP (?)
DSTACK ENDS

CYFRY2 SEGMENT
ASSYME CS:CYFRY2, SS:DSTACK

START:
MOV AH,01H
MOV AL,[BX]
INT 21H
MOV AH,01H
MOV AL,[AX]
INT 21H
MOV AH,02H
MOV DS,BX
INT21H
JMP WARUNEK

WYPIS PROC
PUSH BX
RET
WYPIS ENDP

WARUNEK:
CMP BX,AX
JE KONIEC
DEX BX
CALL WYPIS
JMP WARUNEK

KONIEC:
MOV AH,4CH
INT 21H

CYFRY2 ENDS
END START
[/code]

dopiero zaczynam z asemblerem a to jest moja pierwsza próba ze stosem. Wiem, że nie mogę przypisać al, do ax ale nie mam innego pomysłu. Proszę o podpowiedzi z góry dzięki :)

0

Wykorzystaj przerwanie 16h do odczytywania znaków z klawiatury w pętli, np do czasu naciśnięcia klawisza Enter (13h).
Możesz je też próbować wyświetlać po wpisaniu.

PS. Trochę dziwne, że uczą cię ASMa w DOS. Linux jest równie przystępny, a wiedza przynajmniej się nie zmarnuje. Na twoim miejscu zmieniłbym szkołę i to w trybie pilnym.

0
  1. Ta wiedza również się nie zmarnuje - bez różnicy czy to linux, dos czy winda.
  2. co to za instrukcja "DEX" w procedurze "WARUNEK" - jak to możliwe, że kompilator ci tego nie wywalił.
  3. bez sprawdznia czy user podał prawidłowy znak (litere czy cyfre) to po kolei:
    • pobierasz [x] oraz [y] (kody ASCI cyfr wprowadzonych z klawiatury)
    • pobrane znaki XORujesz z wartością 30h, żeby otrzymać ich wartości bezwzględne.
    • ustanawiasz wszystkie wartosci zakresu.
    • każda wartość zakresu OR 30h, żeby otrzymać ich kody ASCII.
    • wyświetlasz na ekran po kolei każdą wartość + spację (ascii 20h)
    • finito.

http://rudy.mif.pg.gda.pl/~bogdro/dos/index.php
ten serwis ogarniaj zwłaszcza te dwie strony cię interesują teraz:
http://rudy.mif.pg.gda.pl/~bogdro/dos/skankod.htm
http://rudy.mif.pg.gda.pl/~bogdro/dos/a_kurs17.htm

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