Cześć, mam problem z napisaniem programu symulującego szyfr cezara.
W pierwszym fragmencie kodu wczytuje ciąg znaków, w następnym fragmencie chciałbym je wyświetlić wykorzystuje do tego instrukcje push i pop.
Niestety całość nie daje oczekiwanego efektu, nie udaje mi się wyświetlić tego wcześniej wczytanego ciągu.
;program - szyfr cezara
.model small
.stack 100h
.data
napis1 db 'Program',13,10,'$'
;nowa_linia db 13,10,'$'
.code
start:
mov ax, seg napis1
mov ds, ax
mov dx, offset napis1
mov ah, 9 ; wyswietl ciag znakow
int 21h
mov cx,20
l1:
mov ah, 01 ; wczytaj pojedynczy znak
int 21h
push ax
cmp al, 13 ;kiedy wczytana wartosc - enter, przerwij wczytywanie
jz koniec
loop l1
koniec:
mov cx, 20
l2:
pop bx
mov ah,9
mov dl, bl
int 21h
loop l2
mov ah, 4ch
int 21h
end start
end