Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data segment
- lozinka db 1, 64, 2, 32, 4, 8, 16 ;lozinka=1726345
- data ends
- code segment
- assume cs:code, ds:data
- start:
- mov ax, data ;u ax smestamo pocetnu adresu data segmenta
- mov ds, ax ;inicijalizujemo data segment
- cli ;zabrana prekida
- ;inicijalizacija komponente 8255A
- mov dx, 0FE06h ;adresa na kojoj se nalazi kontrolna rec
- mov al, 090h ;u al smestamo vrednost kontrolne reci
- out dx, al ;saljemo kontrolnu rec na njenu adresu
- sti ;dozvola prekida
- inicpocetak:
- xor si, si ;si = 0, predstavlja brojac i pomeraj u nizu lozinka
- xor bx, bx ;brojac pogodjenih cifara lozinke, bx = 6 - tacno!
- mov dx, 0FE00h ;u dx smestamo adresu PORTA A
- citaj:
- cmp si, 6 ;ako je si == 6 znaci da smo uneli 6 cifara i onda...
- je provera ;skacemo na proveru
- in al, dx ;citamo podatak sa PORTA A
- cmp al, 0 ;ako je al (pristigli podatak) jednak 0 znaci da nije bilo...
- je citaj ;pritiska na taster i ponovo ucitavamo podatak (vracamo se na labelu citaj)
- cmp al, 128 ;ako je al = 128 pritsnut je taster za RESET
- je inicpocetak ;sto znaci potrebno je resetovati brojace zato skacemo na inicpocetak
- cmp lozinka[si], al; ;mozda treba cmp byte ptr lozinka[si], al!!!
- ;U svakom slucaju proveravamo da li je uneti podatak jednak prvoj cifri
- ;nase zadate lozinke
- inc si ;povecavamo broj unetih podataka za 1
- jne citaj ;ako uneti podatak nije bio jednak podatku na adresi lozinka[si] skacemo na citaj
- inc bx ;ako je podatak bio jednak uvecavamo brojac pogodjenih cifara za 1
- jmp citaj ;skacemo na citaj da bi uneli novi podatak
- provera:
- cmp bx,6 ;ako je bx=6 lozinka je tacna
- jne netacno ;ako nije jednako skacemo na labelu netacno
- tacno:
- mov dx, 0FE02h ;u dx smestamo adresu PORTA B
- mov al, 0FFh ;u al smestamo podatak koji saljemo na PORT B u ovom slucaju sve 1 kako bi
- ;upalili sve diode jer se tako u zadatku trazi
- out dx,al ;saljemo podatak
- jmp inicpocetak ;skacemo na pocetak (vrata su otvorena, ulazi Stanimirovic,
- ;vrata se zatvaraju - dolazi AKS i oce da udje)
- netacno:
- mov dx, 0FE04h ;u dx smestamo adresu PORTA C
- mov al, 0FFh ;u al smestamo podatak koji saljemo na PORT C u ovom slucaju sve 1 kako bi
- ;upalili sve diode jer se tako u zadatku trazi
- out dx, al ;saljemo podatak
- jmp inicpocetak ;AKS ne zna sifru :)
- mov ax, 4c02h ;ovo u sustini ne bi trebalo nikad da se desi
- int 21h ;dakle ni ovo
- code ends
- end start ;ne zaboravite ENTER (novi red) nakon ove linije da se ne ljuti Oliver :)
Advertisement
Add Comment
Please, Sign In to add comment