Asembler
;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
Više u Informacione tehnologije
Python plan učenja
- VI
- Visoka škola 'CEPS-Centar za poslovne studije' u Kiseljaku · Sarajevo
- 5 stranica
Sistemi upravljanja
- Mehatronika
- UNIVERZITET U SARAJEVU Muzička akademija · Banovici
- 18 stranica
Optimizacija CT doze (akvizicionim protokolom) kod PET/CT i SPECT/CT hibridnih uređaja
- Osnove nuklearne medicine
- Visoka zdravstvena škola strukovnih studija · Beograd
- 14 stranica
Više u Skripte
Mrežni plan
- PLANIRANJE
- UNIVERZITET U SARAJEVU Fakultet za saobraćaj i komunikacije · Sarajevo
- 6 stranica
Python plan učenja
- VI
- Visoka škola 'CEPS-Centar za poslovne studije' u Kiseljaku · Sarajevo
- 5 stranica
Sistemi upravljanja
- Mehatronika
- UNIVERZITET U SARAJEVU Muzička akademija · Banovici
- 18 stranica