VAJE
1.Odpri vsa mozna okna v simulatorju. Odpri in nalozi program 2port.asm. Ugotovi in opii, kakna je vsebina: pomnilnikega naslova 0, naslova $2200, naslova $FFFE, registra A, programskega tevca, kazalca na sklad.
Vsebine:
pomnilniki naslov: Sprva je vsebina <00>, ko pa nalozimo program, je vsebina<F0>;
naslova $2200: Vsebina je <00>;
naslova $FFFE:Vsebina je <E0>;
registra A: Vsebina se spreminja: <00>, <F0>;
programskega tevca: Vsebina se spreminja, po korakih:$E000,$EOO2, $EOO5, $EOO8, $EOO9, $EOOA, $EOOB, $EOOC, $EOOF;
kazalec na sklad ima vedno vrednost $0000.
2.Izvajaj program po korakih, pocasno in hitro. Kako spremembe vhodov na portu 1 vplivajo na izhode?
Ko pritisnemo na vhodu doloceno stikalo, zasveti tudi dolocena lucka.
3.Poici vsebino PC, ko se izvaja skok na zacetek zanke.
Vsebina PC je "20".
4.Katerim registrom se med izvajanjem spreminja vsebina in zaradi cesa nastajajo spremembe?
Vsebine se spreminjajo registroma A in D.
5.Ponovno nalozi program in spremeni v pomnilniku vsebino prve lokacije programa (zamenjaj poljuben bit). Kako se obnaa spremenjeni program?
Zamenja razporeditv luck in tipk.
6.Kaj se zgodi, ce spremeni vsebino PC?
Program ne bo deloval.
7.Spremeni program tako, da spremeni reset vektor na naslov $5000. Zakaj program ne dela?
Simulatorja ne moremo zagnati, saj ni oznake START. Reset vektor nam ne kaze vec na zacetek programa.
8.Spremeni e zacetni naslov programa na vrednost $5000.
- RESET VEKTOR
org $fffe
fdb $5000
- PROGRAMSKA KODA
org $5000
9.Spremeni program tako, da bo imel port1 na najtezjih dveh bitih vhode, ostali naj bodo izhodi. Postavi vse izhode na 1 (prizgi lucke). Uporabi takojnje naslavljanje.
1.) Lucke prizgem z gumbom
2.) Lucke prizgem s takojsnjim naslavljanjem
10.Zgornji program predelaj tako, da bo za postavitev izhodov uporabil razirjeno naslavljanje. Za vpis vrednosti na doloceno lokacijo v pomnilniku (npr. na $4000) lahko uporabi ukaza LDAA #$ff, STAA $4000 ali pa ORG $4000, FCB $ff.
Za vpis izhodov sem uporabil ukaza LDAA #$ff in STAA $4000.
11.Zgornji program predelaj tako, da bo za postavitev izhodov uporabil indeksno naslavljanje.
12.V zgornji program nekam v glavno zanko vrini vrstici LDAA #$FF, PSHA. Kaj se zgodi, ko se program izvaja? Popravi program tako, da bo vrednost FF s sklada pobral nazaj v akumulator A.
Spremeni se smerni register DDR. Na portu1 so samo izhodi.
13.Napisi program, ki prizge vse diode na portu1.
ddr equ 0
dr equ 2
org $fffe
fdb $5000
org $5000
ldaa #$1111
staa ddr
zanka ldab #$ff
staa dr
bra zanka
end
14.Napisi program, ki steje v neskoncnost. Uporabi register A. Kaksna je koncna vrednost registra A?
Koncna vrednost registra A je $ff.
15.Napisi program, ki steje do $e0. Uporabi register A. Kaksna je koncna vrednost registra?
Koncna vrednost registra je $e0.
16.Napisi program, ki prizge poljubno diodo na plosci, ce je vrednost registra B vecja od 32. Vrednost v register B vpises v simulatorju.
ddr equ 0
dr equ 2
org $fffe
fdb $5000
org $5000
pricni ldaa #$1111
staa ddr
zanka ldab #32
cmpb #32
beq prizgi
bra zanka
prizgi ldaa #$1010
staa dr
bra zanka
end
17.Opisi zgradbo mikrokrmilnika Motorole MC6803. Katere gradnike vsebuje, kako so povezani in katere registre ima procesor?
MC6803 je sestavljen iz procesorja, glavnega pomnilnika in V/I enot. Med seboj so povezani z vodili. Procesor ima PC (Program Counter), naslovni, podatkovni in ukazni register.
18.Kaj je PIO? Kako deluje v MC6803? Kaj je smerni register in kaj podatkovni register?
Smerni register (DDR) je dolocitelj vhodov in izhodov.
Podatkovni register (DR): preko njega se podatki iz naslovnega vodila prenesejo v ukazni register.
19.Katere nacine naslavljanja pozna MC6803? Opisi jih in navedi primere.
TAKOJSNJE - LDAA #$f1
DIREKTNO - LDAA $f1
RAZSIRJENO - LDAA $fffe
VSEBOVANO - INCA