Why?
org 100h
mov ah,00h
int 16h
mov cx,2000
etykieta:
inc i
mov ah, 09h
mov dx,i
int 21h
loop etykieta
i dd 0
Why?
org 100h
mov ah,00h
int 16h
mov cx,2000
etykieta:
inc i
mov ah, 09h
mov dx,i
int 21h
loop etykieta
i dd 0
Instrukcja loop: "Decrement CX and Loop if CX Not Zero"
Czyli instrukcja loop automatycznie zmniejsza cx, a ty zwiększasz ten rejestr w pętli przez co ma ciągle ma tą samą wartość i nigdy nie opuszcza pętli.
Ja zwiększam i nie cx
Rzeczywiście za szybko spojrzałem. Przepraszam.
Napisz jeszcze co ma robić twój program??
Program ma wypisać 2000 razy na ekranie aktualną wartość i, czyli z każdą inkrementacją o jeden większa
1
2
3
4
5
...
Zapomniałeś zamienić liczby na tekst (ASCII).
Jest do tego jakaś szybka funkcja?
Dla liczb jednocyfrowych - tak, add
. Dla większych musisz pokombinować (kilka-kilkanaście linijek).
Rev.pl napisał(a)
Zapomniałeś zamienić liczby na tekst (ASCII).
oraz o tym, że string musi się kończyć znakiem$
dla funkcji ah09/int21. Oraz o enterze, bo wszystko wypisywałoby ci w jednej linijce. Oraz o wyjściu z programu, czyli ax4c00/int21, lub chociażbyret
.