[ leo.b @ 19.04.2004. 20:57 ] @
Pozdrav, imam manji problem u Assembleru (MASM simulator za 8086 proc)
Zapeo sam na slijedecem zadatku: "uneseni string ispisati obrnuto, pri tome koristiti stog"

Za stavljanje podatka na stog koristio sam PUSH naredbu, a za skidanje sa stoga POP.
Podatak unesen sa tipkovnice sam na slijedeci nacin staljao na stog:

mov ah, 01h
int 21h
mov znak, al

mov ax, ptrZnak
push ax

Varijable znak i ptrZnak sam definirao ovako:
znak DB ?
ptrZnak DW znak


Sa stoga sam skidao podatke i ispisivao ih na slijedeci nacin:
pop ptrZnak
mov dx, ptrZnak
mov ah, 09h
int 21h

Rezultat ovoga bi bio ispisivanje niza nepoznatih karaktera, pa sam onda odlucio uneseni podatak staviti na prvo mjesto niza duljine 2 karaktera, dok bi na drugo mjesto stavio znak za kraj stringa ($).

Kada bi takve podatke uzimao sa stoga i ispisivao ih onoliko puta koliko je bilo unesenih znakova, ispisivao bi mi samo zadnji uneseni karakter.

Moze mi netko pomoci, dati neku smjernicu ili pak rjesiti zadatak ;) ?
Hvala.
[ stanks @ 28.04.2004. 20:02 ] @
Naredbe cld, std. Pomaknes pointer na kraj pa umanjujes ptrZnak za 1 i ispisujes sve dok ima znakova?
std postavlja direction flag (onda ucitavas od zadnjeg prema prvom)
cld brise (mice) direction flag....to je obavezno na kraju kad ti vise nije potrebno inace dolazi do rusenja! (isto kao i push i pop...svaki push mora imati pop u proceduri inace banana)

stanks
[ system0verride @ 31.05.2004. 20:01 ] @
Ajde stavi ceo kod na forum ili mi posalji mail...