tag. -->

VAJE

1.Odpri vsa mozna okna v simulatorju. Odpri in nalozi program 2port.asm. Ugotovi in opiši, kakšna je vsebina: pomnilniškega naslova 0, naslova $2200, naslova $FFFE, registra A, programskega števca, kazalca na sklad.

Vsebine:

pomnilniški 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.Poišci 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 obnaša 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 takojšnje naslavljanje.

1.) Lucke prizgem z gumbom

2.) Lucke prizgem s takojsnjim naslavljanjem

 

10.Zgornji program predelaj tako, da boš za postavitev izhodov uporabil razširjeno 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

1