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.
mov es,ax<br />
;********************************************************************<br />
mov al,byte ptr [Y] ;y<br />
mov ah,0<br />
mov bl,160 ;0. red 80 * 2 bajta<br />
mul bl ;ax = al * bl<br />
mov di,ax ;upisati u di<br />
;********************************************************************<br />
mov al,byte ptr [X] ;x<br />
mov ah,0<br />
mov bl,2 ;x * 2<br />
mul bl<br />
add di,ax ;pozicija karaktera u memoriji<br />
;********************************************************************<br />
mov al,byte ptr [KARAKT] ;ASCII kod karaktera<br />
mov ah,byte ptr [BOJA] ;kod boje<br />
;********************************************************************<br />
mov es:[di],ax ;upisivanje karaktera<br />
;u memoriju<br />
;********************************************************************<br />
mov ax,4c00h ;nazad u DOS<br />
int 21h<br />
;********************************************************************<br />
X: db 40<br />
Y: db 12<br />
KARAKT:db "X"<br />
BOJA: db 7<br />
;********************************************************************<br />
Prog03 Ends ;kraj segmenta<br />
End Start<br />
;*********************************************************************<br />
Analiza programa:<br />
Za upisivanje podataka (broja) u memoriju služi db (define byte) direktiva<br />
(instrukcija asemblera). Na početak reda dolazai labela, simboličko ime broja, zatim<br />
direktiva db i kao parametar vrednost. Čitanje iz te memorije je jednostavno, samo<br />
treba se pozivati na promenljivu i označiti tip broja (na primer byte). U programu<br />
prog03 na primer x pozicija je opisana sa X: db 40 redom.<br />
Sa instrukcijom mul vršimo množenje dva operanda, na primer al sa bl, a pošto su ovi<br />
operandi osmobitni, rezultat je šesnaestobitni, biće upisan u registar ax. Množenje<br />
registara ax sa bx daje tridesetodvobitni rezultat, koji će biti upisan u dx i ax registar.<br />
4. Zadatak: Program treba da štampa tekst iz memorije. Dužina teksta je<br />
proizvoljna, kraj teksta je označena sa ASCII karakterom, koji ne može da<br />
bude ni slovo ni broj, na primer 0.<br />
Listing programa je:<br />
;********************************************************************<br />
Prog04Segment<br />
;definicija segmenta<br />
assume CS:Prog04,DS:Prog04 ;pocetak CS i DS segmenta<br />
;********************************************************************<br />
Start:mov ax,Prog04 ;pocetak na DS<br />
mov ds,ax<br />
86