Witam, mój problem polega na tym, że nie wiem jakiej procedury użyć, aby program umozliwiał pobranie liczby z klawiatury, a następnie wykorzystał ją do obliczeń. Szukałem w internecie różnych procedur, ale większość z nich zawierają makra, których nie potrafie napisać. Pisze pod dosa w kompilatorze fasm. Poniżej zamieszczam kod, który znalazłem. Wydaje mi sie fajnie napisany, ale niestety nie rozumiem makra po instrukcji call
xor bx, bx ; miejsce na liczbę
l_petla:
call far _we_z ; pobierz znak z klawiatury
cmp al, lf ; czy Enter?
je l_juz ; jeśli tak, to wychodzimy
cmp al, cr
je l_juz
; przepuszczamy Spacje:
cmp al, spc
je l_petla
cmp al, '0' ; jeśli nie cyfra, to błąd
jb l_blad
cmp al, '9'
ja l_blad
and al, 0fh ; izolujemy wartość (sub al, '0')
mov cl, al
mov ax, bx
shl bx, 1 ; zrobimy miejsce na nową cyfrę
jc l_blad
shl ax, 1
jc l_blad
shl ax, 1
jc l_blad
shl ax, 1
jc l_blad
add bx, ax ; BX=BX*10 - bieżącą liczbę mnożymy przez 10
jc l_blad
add bl, cl ; dodajemy cyfrę
adc bh, 0
jc l_blad ; jeśli przekroczony limit, to błąd
jmp short l_petla
l_juz:
; wynik w AX