Osnovi programiranja i programski jezici
Osnovi programiranja i programski jezici
Osnovi programiranja i programski jezici
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Listing programa je:<br />
;********************************************************************<br />
Prog07 Segment ;definicija segmenta<br />
assume CS:Prog07,DS:Prog07 ;pocetak CS i DS segmenta<br />
;********************************************************************<br />
Start:mov ax,Prog07 ;pocetak na DS<br />
mov ds,ax<br />
;********************************************************************<br />
mov ax,0b800h ;adresa video memorije u<br />
mov es,ax ;es registar<br />
;********************************************************************<br />
mov ax,3 ;brisanje ekrana<br />
int 10h<br />
;********************************************************************<br />
call write1 ;meni na ekran<br />
lab1: call line ;zelena traka u pozadini prvog reda<br />
;********************************************************************<br />
lab2: mov ax,0100h ;taster?<br />
int 16h<br />
;********************************************************************<br />
jz lab2 ;ne, cekati<br />
;********************************************************************<br />
mov ax,0 ;da<br />
int 16h<br />
cmp ah,1ch ;ENTER?<br />
jz ent ;da, nastaviti tamo<br />
;********************************************************************<br />
cmp ah,48h ;^? (gore?)<br />
jnz lab3 ;ne, proveriti sta je<br />
;********************************************************************<br />
cmp byte ptr [POINTER],1 ;POINTER = 1 ?,<br />
jz lab2<br />
;********************************************************************<br />
dec byte ptr [POINTER] ;POINTER - 1<br />
jmp lab1 ;cekati opet na taster<br />
;********************************************************************<br />
lab3: cmp ah,50h ;dole ?<br />
jnz lab2 ;ne, taster<br />
;********************************************************************<br />
cmp byte ptr [POINTER],5 ;POINTER jos ne pokazuje na<br />
jz lab2 ;5. poziciju, inkrementirati<br />
;********************************************************************<br />
inc byte ptr [POINTER]<br />
jmp lab1 ;taster<br />
;********************************************************************<br />
ent: mov cl,byte ptr [POINTER] ;u cl vrednost POINTER-a<br />
mov si,offset ADDRESS ;u bs adresa<br />
;********************************************************************<br />
ent1: mov bx,[si]<br />
add si,2<br />
loop ent1<br />
jmp bx ;skok na osnovu bx registara<br />
;********************************************************************<br />
ent2: mov si,offset QUEST ;pitanje na ekran<br />
call write2<br />
;********************************************************************<br />
ent3: mov ax,0100h ;da? ne?<br />
int 16h<br />
jz ent3<br />
93