Odlomak

;Napisati program koji ucitava proizvoljan niz cifara i sve cifre na ekranu koji se pojavljuju u tom nizu boji u zutu boju.
;Pre startovanja programa ispisati proizvoljan tekst na ekran.
DSEG SEGMENT
Poruka : DB ‘Upisati niz cifara iz skupa {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: $’
Brojevi DB 10 DUP (0) ;Definicija niza od 10 bajtova, u kome su svi bajtovi imaju vrednost nula
DSEG ENDS

SSEG SEGMENT STACK
DB 256 DUP (0) ;obavezni deo
SSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG ;obavezni deo
;*****************************************************
IspisStringa MACRO str
PUSH AX
PUSH DX

MOV AH, 9 ;Poziva se Podinterapt za ispis stringa
MOV DX, offset str ;U DX smestamo adresu prvog znaka stringa str (offset je funkcija koja vraca rastojanje od pocetka Data Segmenta do pocetka str promenljive iz data segmenta)
INT 21h ;Pozivamo Interapt (isisuje string)

POP DX ;POP skidanje sa steka
POP AX
ENDM
;*****************************************************
UnosKaraktera MACRO ;Unosi znakove dok korisnik ne pritisne ENTER
PUSH AX
PUSH BX

NoviZnak: ;Ucitava znake sa tastature dok se ne pritisne ENTER
MOV AH, 1 ;Podinterapt za unos znaka sa izlazom
INT 21H ;Interapt 21H, uneti znak se sada nalazi u AL
CMP AL, 13 ;Proveravamo da li je pritisnut ENTER (13) (poredjenje)
JE EndRD ;Ako jeste zavrsavamo rad makroa (skace na kraj makroa)
CMP AL, 48 ;Poredimo AL sa 48 (sto je nula u ASCII tabeli)
JL NoviZnak ;Ako je manje od 48 onda nije cifra pa ucitavamo sledeci znak
CMP AL, 57 ;Poredimo AL sa 57 (sto je devet u ASCII tabeli)
JG NoviZnak ;Ako je vece od 57 onda nije cifra pa ucitavamo sledeci znak
;Inace jeste cifra 48-57 (nula-devet)
MOV AH, 0 ; (stavljamo u gornji dio regista 0 da budemo sigurni da se u cijelom registru nalazi ucitani broj)
SUB AL, 48 ;Smanjimo AL za 48 da bi u AL bio bas uneti broj, a ne njegova reprezentacija iz ASCII tabele
MOV BX, AX ;Prebacimo broj iz AX u BX, zato sto pomocu BX moze da se pristupi promenljivoj u data segmentu

 

No votes yet.
Please wait…

Prijavi se

Detalji dokumenta

Više u Informacione tehnologije

Više u Skripte

Komentari