Programowanie mikrokontrolerów (CISC) Repertuar instrukcji

Transkrypt

Programowanie mikrokontrolerów (CISC) Repertuar instrukcji
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
Repertuar instrukcji
● Operacje arytmetyczne
● Operacje logiczne
● Operacje logiczne na bitach
● Przesyłanie danych
● Operacje sterujące (skoki)
●
NOTACJA:
Rr
direct
@Ri
bit
#data
#data16
addr16
addr11
rel
–
-
rejestry R0 ... R7
wewnętrzny RAM oraz SFR
adres pośredni R0 lub R1
bity adresowalne RAM lub SFR
stała 8-bitowa
stała 16-bitowa
adres w 64k
adres w stronie 2k
adres względny -128 ... +127
/bit
- negacja bitu
1/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
TRYBY ADRESOWANIA
Adresowanie zapewnione sprzętowo
● bezpośrednie
● względne
● pośrednie (za pomocą rejestrów R0 lub R1)
Adresowanie zapewnione przez asemblery
● adresowanie symboliczne
● definicje bloków
2/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
OPERACJE ARYTMETYCZNE
kod
Dodaj
A <- A + 
Dodaj
A <- A +  + C
Odejmij A <- A -  - C
Zwiększ o jeden
Zmniejsz o jeden
Mnóż
A*B
Dziel
A/B
Poprawka dziasiętna
ADD
ADDC
SUBB
INC
DEC
MUL
DIV
DA
dozwolone adresowanie
A,Rr
A,direct
A,Rr
A,direct
A,Rr
A,direct
A
Rr
A
Rr
(wynik: A – low
B–
(
A – wynik
B–
A,@Ri
A,@Ri
A,@Ri
direct
direct
high )
reszta )
A,data
A,data
A,data
@Ri
@Ri
DPTR
Rozkazy mnożenia i dzielenia zajmują 4 cykle maszynowe
Rozkaz INC adresujący DPTR zajmuje 2 cykle maszynowe
Pozostałe operacje arytmetyczne wykonywane są w jednym cyklu maszynowym
3/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
OPERACJE LOGICZNE
kod
Iloczyn logiczny AND
Suma logiczna OR
Suma modulo 2 XOR
Zerowanie
Negacja
Obrót w lewo
Obrót w prawo
Obrót w lewo przez C
Obrót w prawo przez C
Zamień 4 bity (hi<-->lo)
ANL
ORL
XRL
CLR
CPL
RL
RR
RLC
RRC
SWAP
dozwolone adresowanie
A,Rr
A,Rr
A,Rr
A
A
A
A
A
A
A
A,direct A,@Ri
A,direct A,@Ri
A,direct A,@Ri
A,#data direct,A direct,#data
A,#data direct,A direct,#data
A,#data direct,A direct,#data
Rozkazy z adresowaniem '' direct,#data '' zajmują dwa cykle maszynowe.
Pozostałe operacje logiczne wykonywane są w jednym cyklu maszynowym.
4/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
OPERACJE LOGICZNE NA BITACH
kod
Zeruj
Ustaw
Neguj
Iloczyn logiczny
Suma logiczna
Kopiuj
CLR
SETB
CPL
ANL
ORL
MOV
dozwolone adresowanie
C
C
C
C,bit
C,bit
C,bit
bit
bit
bit
C,/bit
C,/bit
bit,C
Rozkazy ANL i ORL oraz MOV z adresowaniem '' bit,C '' zajmują dwa cykle maszynowe.
Pozostałe operacje logiczne wykonywane są w jednym cyklu maszynowym.
5/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
PRZESYŁANIE DANYCH
kod
Kopiuj A <- 
Kopiuj Rr <- 
Kopiuj direct <- 
Kopiuj @Ri <- 
Kopiuj DPTR <- 
Pamięć programu
Zewn. pamięć danych
Zamień
Zamień 4 młodsze bity
Zapisz na stos
Odczytaj ze stosu
MOV
MOV
MOV
MOV
MOV
MOVC
MOVX
XCH
XCHD
PUSH
POP
dozwolone adresowanie
A,Rr
A,direct
A,@Ri
Rr,direct
direct,direct direct,@Ri
@Ri,direct
Rr,A
direct,A direct,Rr
@Ri,A
DPTR,#data16
A,@A+DPTR
A,@A+PC
A,@Ri
A,@DPTR
@Ri,A
@DPTR,A
A,Rr
A,direct
A,@Ri
A,@Ri
direct
(SP=SP+1 (SP) <- direct)
direct
(direct <- (SP) SP=SP-1)
A,#data
Rr,#data
direct,#data
@Ri,#data
Rozkazy PUSH, POP, MOVC, MOVX oraz znaczna część MOV zajmują dwa cykle maszynowe.
6/7
MIKROPROCESORY – architektura i programowanie
Piotr MALECKI
Programowanie mikrokontrolerów (CISC)
OPERACJE STERUJĄCE (SKOKI)
Podprogramy
Skoki warunkowe
Skoki warunkowe od bitu
LCALL
addr16
ACALL addr11
RET
RETI
LJMP
addr16
AJMP
addr11
SJMP
rel
JMP
@A+DPTR
JZ, JNZ, JC, JNC rel (odpowiednio dla ACC=0, ACC≠0, C=1, C=0)
JB, JNB, JBC bit,rel
(odpowiednio, gdy bit=1, bit=0, bit=1 i zeruj)
Porównaj, skocz jeśli ≠
Zmniejsz, skocz jeśli ≠ 0
CJNE
DJNZ
Niczego nie rób
NOP
Skoki bezwarunkowe
A,direct,rel
Rr,rel
A,#data,rel
direct,rel
Rr,#data,rel
@Ri,#data,rel
Wszystkie skoki zajmują dwa cykle maszynowe.
Operacja NOP nie robi niczego i zajmuje jej to jeden cykl maszynowy!.
7/7

Podobne dokumenty