Programski
model mikroprocesorja sestavljajo programsko dostopni registri A, B, D, X, SP,
PC, CCR.
Vsebine teh registrov so tudi dosegljive za spremljanje in/ali spreminjanje v
osnovnem oknu simulatorja mikrokontrolerja med izvajanjem programa po korakih
ali v času pavze.
Vsebine
so v glavnem oknu simulatorja prikazane na zaslonu v heksadecimalnem zapisu in
se pojavijo izpisane šele potem, ko uspešno naložimo program.
Register
A (Accumulator A)
Je
8-bitni delovni register, ki nastopa najbolj pogosto v programskih ukazih
procesorja. V večini primerov se po izvršeni logični ali aritmetični
operaciji, v katero vstopa register A s svojo vsebino, tudi rezultat nahaja v
istem registru.
Register
B (Accumulator B)
Je
tudi 8-bitni delovni register, ki se v dobršni meri uporablja enako kot
register A, z redkimi omejitvami.
Register
D
Ni
fizično samostojen register. V ukazih nastopa kot 16-bitni register, ki
predstavlja združeni vsebini registrov A in B. Uporablja se le v nekaterih
16-bitnih operacijah.
Register
X
Je
16-bitni register, ki je namenjen v prvi vrsti za shranjevanje osnovnega naslova
(kot nekakšen kazalec) pri indeksnem naslavljanju. Seveda pa ga lahko
uporabljamo tudi kot splošni register za začasno shranjevanje 16-bitnih
vsebin. Če se vanj prenese vsebina iz pomnilnika, se le-ta prebere z dveh
sosednjih pomnilniških naslovov.
Register
SP (Stack Pointer) - Kazalec na sklad
Je
16-bitni kazalec (register, ki vsebuje naslov) na sklad, ki v vsakem trenutku kaže
na prvo prazno lokacijo v prostoru za sklad. Običajno se spreminja samodejno
pri vpisih na sklad (naslov se zmanjšuje) in pri branjih s sklada (naslov se
povečuje). Na začetku programa, pred prvo uporabo sklada,
programsko dodelimo SP kazalcu na sklad začetno vrednost.
Sklad
se uporablja programsko kot začasen pomnilnik za prenose vsebin iz registrov na
sklad in obratno, pri klicih podprogramov in pri prekinitvah.
Register
PC (Program Counter) - Programski števec
Spada
med 16-bitne registre, ki pa ima posebno vlogo. V bistvu se za njim skriva števec,
ki pri izvajanju programa šteje po naslovih (jih povečuje) v pomnilniku, kjer
se nahaja strojna koda. Šteje tako, da med izvajanjem ukaza kaže PC register
vedno na ukaz, ki se bo naslednji izvršil.
Register
CCR (Condition Code Register) - Pogojno kodni register, Register stanj
Spada med 8-bitne registre, čeprav je uporabljenih le spodnjih 6 bitov, zgornja dva pa imata konstantno vrednost 1. Vsak od spodnjih šestih bitov ima svoj pomen. Posamezne bite imenujemo tudi zastavice (flag), ki se jim vrednost spreminja ob izvrševanju ukazov. Nekateri ukazi ne spreminjajo zastavic, drugi spreminjajo eno, nekateri pa tudi več. Z uporabo teh bitov-zastavic se povezuje prejšnji, že izvršen ukaz, z naslednjim .
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
1 | 1 | H | I | N | Z | V | C |
C-bit
(Carry) - Prenos
C-bit
zavzame vrednost 1, če je pri izvrševanju ukaza prišlo do prenosa iz osmega
na deveti bit (iz b7 na b8) ali pri 16-bitnih številih iz b15 na b16. Do tega
pride, če je območje računanja z osembitnimi oziroma šestnajstbitnimi števili
preseženo. Carry bit, ki se pri tem generira, lahko služi za razširitev računanja
z dodatnimi zlogi.
V-bit
(Overflow) - Preliv
V-bit
dobi vrednost 1, če pride do preliva rezultata preko območja računanja s
predznačenimi števili. Do tega pride, ko pri aritmetični operaciji pride do
prenosa iz b6 na b7 oziroma iz b14 na b15. To pomeni napako, kadar vrednost
rezultata preide v območje predznaka pri seštevanju pozitivnih števil ali pri
odštevanju od negativnega števila.
Z-bit
(Zero) - Nič
Če
zavzame rezultat po izvršeni operaciji vrednost 0, se postavi Z-bit. Praktično
to pomeni, da so v rezultatu vsi biti enaki 0.
N-bit
(Negative) - Negativni
Najbolj
vreden bit (b7 ali b15) predstavlja predznak pri računanju s predznačenimi števili.
Če je ta bit postavljen na vrednost 1, procesor to interpretira kot negativno
število in postavi tudi N-bit na 1, sicer ga briše.
I-bit
(Interrupt) - Prekinitev
I-bit
predstavlja masko za preprečevanje sprejema maskirnih prekinitev. Na vrednost 1
se postavi po resetu procesorja (začetna vrednost), pri sprejemu katerekoli
prekinitvene zahteve ali programskom z ukazom SEI. Na vrednost 0 se briše z
ukazom CLI ali RTI ob vrnitvi iz prekinitvenega strežnega programa.
H-bit
(Half Carry) - Polovični prenos
H-bit zavzame vrednost 1, če je pri izvrševanju ukaza prišlo do prenosa iz četrtega na peti bit (iz b3 na b4). H-bit se uporablja predvsem v povezavi z aritmetičnimi operacijami, ki uporabljajo operande v BCD zapisu.