Inštrukcie mikroprocesora sa delia do 4 základných skupín:
MOV,
MOVC, MOVX, POP,
PUSH, XCH, XCHD,
SWAP ADD, ADDC, DA, DEC, DIV, INC, MUL, SUBB ANL, CLR, CPL, ORL, RL, RLC, RR, RRC, SETB, XRL ACALL, AJMP, CALL, LCALL, LJMP, SJMP, CJNE, DJNZ, JB, JBC, JC, JNC, JZ, JNZ, RET, RETI |
1-slovná inštrukcia | 2-slovná inštrukcia | 3-slovná inštrukcia | ||||||||||||
|
|
|
Inštrukcie mikroprocesora pozostávajú z 1 až 3 8 bitových slov (slovo = najmenšia priamo adresovateľná bunka operačnej pamäte). Prvé slovo inštrukcie obsahuje operačný kód - určujúci ČO má operácia vykonať a kódy alebo hodnoty operandov s ktorými sa má operáciu vykonať.
Sú to 8 bitové alebo 1 bitové binárne údaje uložené: a #data ako aj a prípadne a @R1
Operand udávaný v inštrukcii je určovaný buď ako:
Nasledovná vzorová tabuľka ukazuje princíp kódovania strojových inštrukcií príbuzných inštrukcií ANL, ORL a XRL, ktoré sa líšia operačným kódom ( vid. ANL - 0101, ORL - 0100 a XRL - 0110), zatiaľ čo časť operandov majú rovnakú. V inštrukciách vidno kódovanie operandu registra R0 až R7 tromi bitmi 000 - 111. Vidno kódovanie priameho operandu direct a #data ako aj A a #data prípadne @R0 a @R1. V tabuľke vidno aj ako sa používa hodnota priamych operandov dddddddd a ########.
----------- ANL ----------- ----------- ORL ----------- ----------- XRL -----------
assembler binárny tvar assembler binárny tvar assembler binárny tvar ANL A,R0 0101 1 000 ORL A,R0 0100 1 000 XRL A,R0 0110 1 000 ANL A,R1 0101 1 001 ORL A,R1 0100 1 001 XRL A,R1 0110 1 001 ANL A,R2 0101 1 010 ORL A,R2 0100 1 010 XRL A,R2 0110 1 010 ANL A,R3 0101 1 011 ORL A,R3 0100 1 011 XRL A,R3 0110 1 011 ANL A,R4 0101 1 100 ORL A,R4 0100 1 100 XRL A,R4 0110 1 100 ANL A,R5 0101 1 101 ORL A,R5 0100 1 101 XRL A,R5 0110 1 101 ANL A,R6 0101 1 110 ORL A,R6 0100 1 110 XRL A,R6 0110 1 110 ANL A,R7 0101 1 111 ORL A,R7 0100 1 111 XRL A,R7 0110 1 111 ANL A,direct 0101 0 101 ORL A,direct 0100 0 101 XRL A,direct 0110 0 101 dddddddd dddddddd dddddddd ANL A,#data 0101 0 100 ORL A,#data 0100 0 100 XRL A,#data 0110 0 100 ######## ######## ######## ANL direct,A 0101 0 010 ORL direct,A 0100 0 010 XRL direct,A 0110 0 010 dddddddd dddddddd dddddddd ANL direct,#data 0101 0 011 ORL direct,#data 0100 0 011 XRL direct,#data 0110 0 011 dddddddd dddddddd dddddddd ######## ######## ######## ANL A,@R0 0101 0 110 ORL A,@R0 0100 0 110 XRL A,@R0 0110 0 110 ANL A,@R1 0101 0 111 ORL A,@R1 0100 0 111 XRL A,@R1 0110 0 111
V príklade sú jedno-, dvoj- ale aj troj-slovné inštrukcie. Každá inštrukcia (aj viac slovná) má kódovanie operačného kódu a operandov v prvom slove inštrukcie. Kódovanie má svoju logiku, ktorá uľahčuje dekódovanie. Ako vidno z farebného označenia, tvorcovia mikroprocesoru do kódov zahrnuli aj význam zakódovaný do jednotlivých skupín bitov v inštrukcii. (Vid. napr. zakódovanie čísel registrov R0 - R7.)
Množstvo inštrukcií a kombinácií operandov je obmedzený na celkový počet 256 možných kombinácií. Ako z tabuľky vidno, v princípe kódovanie každej 8 bitovej inštrukcie vzniká ako súhrn troch skupín binárnych kódov rôznej dlžky. Aj v rámci užšej skupiny ( vid. inštrukcia ANL), existuje ďalšie členennie na menšie skupiny, ktoré majú rôzne interpretácie kódov (vid direct a #data ako aj A a #data prípadne @R0 a @R1) pritom na ich rozlíšenie sa použil ten istý bit kódového slova.
PSW - PROGRAM STATUS WORD REGISTER - Register stavového slova, obsahuje nezávislé bity, ktoré majú svoju špecifickú úlohu a pracujú nezávise jedna od druhej. Sú to tieto:
CY | AC | FO | RS1 | RS0 | OV | - | P |
Príznak prenosu (CY) - Príznak sa nastaví na 1 ak vznikne deviaty bit ako výsledok operácie vykonanej v ALU.
Pomocný príznak (AC) - Nastaví sa pri vykonnej operácii v ALU keď vznikne prenos medzi niblami t.j. v poradí medzi 4-tým a 5-tym bitom registra Acc.
Príznak nuly (FO) - ?
Príznak pretečenia (OV) - Príznak naznačuje že bol získaný nesprávny výsledok operácie sčítania alebo odčítania, kde pri operácii napr. dvoch veľkých kladných čísel dostaneme výsledok záporný - OV signalizuje pretečenie.
Príznak parity (P) - Signalizuje, že vo výsledku operácie je párny počet jedničiek. Toto sa využíva zvyčajne pri komunikácii medzi počítačmi pre potreby paritnej kontroly.
RS1, RS2 - Nastavenie aktuálneho banku registrov Rn (00, 01, 10, 11) .
Inštrukcie mikroprocesora narábajú jednak s registrami, obsahom pamäti v programovej časti CODE resp. dátovej časti DATA. Pri bitových operáciách používa aj špeciálny príznak CY - CARRY - bit uchovávajúci prenosový bit resp. pomocný bit pri operáciách rotácie obsahu Acc cez CY príznak.
RAM - Random acces memory - Pamäť s náhodným prístupom = pamäťová súčiastka do ktorej sa dajú zapisovať slová na konkrétne adresy a potom ich opäť z týchto adries prečítať. Pamäť obsahuje dve zbernice - adresnú a dátovú. Okrem nich riadiace vodiče typu RD - read, WR - write, slúžiace na zápis a čítanie z pamäti.
ROM - Read only memory - Pamäť z ktorej sa dá len čítať. Obsahuje adresnú a dátovú zbernicu. Na čítanie slúži riadiaci vodič typu RD - read.
NIBLE - rozumejú sa tým skupiny 4 bitov v registri. Bity 7-4 predstavujú horný nible a bity 3-0 predstavujú spodný nible. Niektoré operácie zabezpečujú výmenu niblov medzi sebou v rámci jednoho slova, niektoré medzi dvomi slovami.