Witam, mam za zadanie napisać program w Assemblerze, którego zadaniem będzie pokazanie spadającej gwiazdki i właśnie mam w tym mały problem.
Całość kodu wygląda następująco:
.model small
.stack 24h ;stos programu
stosik SEGMENT STACK
DB 328 DUP(?)
stosik ENDS
dane segment
przerwa db '*',13,10,'$'
licz db 0
dane ends
kod segment
assume cs:kod, ds:dane, ss:stosik
start:
mov ax, seg dane
mov ds, ax
mov ax, 3
int 10h
MOV AH,01h
MOV CH,10h
MOV CL,00h
INT 10H
mov cx, 10
petla:
push cx
mov ah, 02h
mov dl, 40
mov dh, licz
mov bh, 0h
int 10h
mov ah, 86h
mov dx, 100
mov cx, 10
int 15h
mov ah, 9h
mov dx, offset przerwa
int 21h
pop cx
INC licz
loop petla
MOV AH,01h
MOV CH,07h
MOV CL,07h
INT 10H
mov ah, 4ch
int 21h
kod ends
end start
end
Mój problem polega na tym - pierwsza linijka pokazuje się symbol gwiazdki "*" a w kolejnych dziewięciu jakieś dziwne symbole, czasami jest to euro, czasami || zdarza się też literka Z - jakiś syf, po usunięciu opóźnienia
mov ah, 86h
mov dx, 100
mov cx, 10
int 15h
Wyświetlają się same gwiazdki, więc doszedłem - że wina leży właśnie w tym miejscu, problem w tym, że nie rozumiem dlaczego i nie wiem jak to naprawić.