INŠTRUKCIE 3051 |
Aritmetické operácie |
|
|
|
|
ADD |
A,Rn |
Pripočíta k ACC hodnotu z Rn |
|
|
|
|
ADD |
A,intern |
Pripočíta k ACC hodnotu z
internej RAM |
|
|
|
|
ADD |
A,@R0 |
Pripočíta k ACC hodnotu z
internej RAM na ktorú ukazuje R0 |
|
|
|
|
ADD |
A,@R1 |
Pripočíta k ACC hodnotu z
internej RAM na ktorú ukazuje R1 |
|
|
|
|
ADD |
A,#číslo |
Pripočíta k ACC číslo |
|
|
|
|
ADDC |
A,Rn |
Pripočíta k ACC hodnotu z Rn
a hodnotu CY |
|
|
|
|
ADDC |
A,intern |
Pripočíta k ACC hodnotu z
internej RAM a hodnotu CY |
|
|
|
|
ADDC |
A,@R0 |
Pripočíta k ACC hodnotu z
internej RAM na ktorú ukazuje R0 a hodnotu CY |
|
|
|
|
ADDC |
A,@R1 |
Pripočíta k ACC hodnotu z
internej RAM na ktorú ukazuje R1 a hodnotu CY |
|
|
|
|
ADDC |
A,#číslo |
Pripočíta k ACC číslo a
hodnotu CY |
|
|
|
|
SUBB |
A,Rn |
Odpočíta od ACC register a
hodnotu CY |
|
|
|
|
SUBB |
A,intern |
Odpočíta od ACC hodnotu z
internej RAM a hodnotu CY |
|
|
|
|
SUBB |
A,@R0 |
Odpočíta od ACC hodnotu z
internej RAM na ktorú ukazuje R0 a hodnotu CY |
|
|
|
|
SUBB |
A,@R1 |
Odpočíta od ACC hodnotu z
internej RAM na ktorú ukazuje R1 a hodnotu CY |
|
|
|
|
SUBB |
A,#číslo |
Odpočíta od ACC číslo a
hodnotu CY |
|
|
|
|
INC |
A |
Zväčší ACC o jednotku |
|
|
|
|
INC |
Rn |
Zväčší register Rn o
jednotku |
|
|
|
|
INC |
intern |
Zväčší hodnotu v internej
RAM o jednotku |
|
|
|
|
INC |
@R0 |
Zväčší hodnotu v internej
RAM na ktorú ukazuje R0 o jednotku |
|
|
|
|
INC |
@R1 |
Zväčší hodnotu v internej
RAM na ktorú ukazuje R1 o jednotku |
|
|
|
|
INC |
DPTR |
Zväčší ukazovateľa dát o
jednotku |
|
|
|
|
DEC |
A |
Zmenší ACC o jednotku |
|
|
|
|
DEC |
Rn
|
Zmenší register Rn o
jednotku |
|
|
|
|
DEC |
intern |
Zmenší hodnotu v internej
RAM o jednotku |
|
|
|
|
DEC |
@R0 |
Zmenší hodnotu v internej
RAM na ktorú ukazuje R0 o jednotku |
|
|
|
|
DEC |
@R1 |
Zmenší hodnotu v internej
RAM na ktorú ukazuje R1 o jednotku |
|
|
|
|
MUL |
AB |
Vynásobí ACC s registrom B.
Vyšší byte výsledku uloží do registra B, nižší byte výsledku uloží do ACC |
|
|
|
|
DIV |
AB |
Vydelí ACC registrom B. Celú
časť výsledku uloží do A, zvyšok uloží do B |
|
|
|
|
DA |
A |
Konvertuje ACC do BCD kódu |
|
|
|
|
|
|
Logické
operácie |
|
|
|
|
ANL |
A,Rn |
Logický súčin ACC s
registrom Rn |
|
|
|
|
ANL |
A,intern |
Logický súčin ACC s hodnotou
z internej RAM |
|
|
|
|
ANL |
A,@R0 |
Logický súčin ACC s hodnotou
z internej RAM na ktorú ukazuje R0 |
|
|
|
|
ANL |
A,@R1 |
Logický súčin ACC s hodnotou
z internej RAM na ktorú ukazuje R1 |
|
|
|
|
ANL |
A,#číslo |
Logický súčin ACC s číslom |
|
|
|
|
ANL |
intern,A |
Logický súčin hodnoty z
internej RAM s ACC. Výsledok uloží do internej RAM |
|
|
|
|
ANL |
intern,#číslo |
Logický súčin hodnoty z
internej RAM s číslom. Výsledok uloží do internej RAM |
|
|
|
|
ORL |
A,Rn |
Logický súčet ACC s
registrom Rn |
|
|
|
|
ORL |
A,intern |
Logický súčet ACC s hodnotou
z internej RAM |
|
|
|
|
ORL |
A,@R0 |
Logický súčet ACC s hodnotou
z internej RAM na ktorú ukazuje R0 |
|
|
|
|
ORL |
A,@R1 |
Logický súčet ACC s hodnotou
z internej RAM na ktorú ukazuje R1 |
|
|
|
|
ORL |
A,#číslo |
Logický súčet ACC s číslom |
|
|
|
|
ORL |
intern,A |
Logický súčet hodnoty z
internej RAM s ACC. Výsledok uloží do internej RAM |
|
|
|
|
ORL |
intern,#číslo |
Logický súčet hodnoty z
internej RAM s číslom. Výsledok uloží do internej RAM |
|
|
|
|
XRL |
A,Rn |
Logický XOR ACC s registrom
Rn |
|
|
|
|
XRL |
A,intern |
Logický XOR ACC s hodnotou z
internej RAM |
|
|
|
|
XRL |
A,@R0 |
Logický XOR ACC s hodnotou z
internej RAM na ktorú ukazuje R0 |
|
|
|
|
XRL |
A,@R1 |
Logický XOR ACC s hodnotou z
internej RAM na ktorú ukazuje R1 |
|
|
|
|
XRL |
A,#číslo |
Logický XOR ACC s číslom |
|
|
|
|
XRL |
intern,A |
Logický XOR hodnoty z
internej RAM s ACC. Výsledok uloží do internej RAM |
|
|
|
|
XRL |
intern,#číslo |
Logický XOR hodnoty z
internej RAM s číslom. Výsledok uloží do internej RAM |
|
|
|
|
CLR |
A |
Vynuluje ACC |
|
|
|
|
CPL |
A |
Do ACC vloží doplnok k
hodnote, ktorá bola v ACC |
|
|
|
|
RL |
A |
Rotácia ACC doľava |
|
|
|
|
RLC |
A |
Rotácia ACC doľava cez CY |
|
|
|
|
RR |
A |
Rotácia ACC doprava |
|
|
|
|
RRC |
A |
Rotácia ACC doprava cez CY |
|
|
|
|
SWAP |
A |
Vymení v ACC horné štyri
bity za dolné štyri bity |
|
|
|
|
|
|
Presun dát |
|
|
|
|
MOV |
A,Rn |
Presun hodnoty z registra Rn
do ACC |
|
|
|
|
MOV |
A,intern |
Presun hodnoty z internej
RAM do ACC |
|
|
|
|
MOV |
A,@R0 |
Presun hodnoty z internej
RAM na ktorú ukazuje R0 do ACC |
|
|
|
|
MOV |
A,@R1 |
Presun hodnoty z internej
RAM na ktorú ukazuje R1 do ACC |
|
|
|
|
MOV |
A,#číslo |
Presun čísla do ACC |
|
|
|
|
MOV |
Rn,A |
Presun hodnoty z ACC do
registra Rn |
|
|
|
|
MOV |
Rn,intern |
Presun hodnoty z internej
RAM do registra Rn |
|
|
|
|
MOV |
Rn,#číslo |
Presun čísla do registra Rn |
|
|
|
|
MOV |
intern,A |
Presun hodnoty z ACC do
internej RAM |
|
|
|
|
MOV |
intern,Rn |
Presun hodnoty z registra Rn
do internej RAM |
|
|
|
|
MOV |
intern,intern |
Presun hodnoty z internej
RAM na inú adresu internej RAM |
|
|
|
|
MOV |
intern,@R0 |
Presun hodnoty z internej
RAM na ktorú ukazuje R0 na inú adresu internej RAM |
|
|
|
|
MOV |
intern,@R1 |
Presun hodnoty z internej
RAM na ktorú ukazuje R1 na inú adresu internej RAM |
|
|
|
|
MOV |
intern,#číslo |
Presun čísla do internej RAM |
|
|
|
|
MOV |
@R0,A |
Presun hodnoty z ACC do
internej RAM na ktorú ukazuje R0 |
|
|
|
|
MOV |
@R1,A |
Presun hodnoty z ACC do
internej RAM na ktorú ukazuje R1 |
|
|
|
|
MOV |
DPTR,#číslo16 |
Presun
16-bitového čísla do ukazovateľa dát |
|
|
|
|
MOVC |
A,@A+DPTR |
Presun
hodnoty z externej RAM do ACC. Z adresy, ktorá sa vypočíta ako súčet ACC+DPTR
|
|
|
|
|
MOVC |
A,@A+PC |
Presun hodnoty z externej
RAM do ACC. Z adresy, ktorá sa vypočíta ako súčet ACC+PC |
|
|
|
|
MOVX |
A,@R0 |
Presun hodnoty z externej
RAM do ACC. Z adresy, ktorá je v R0 |
|
|
|
|
MOVX |
A,@R1 |
Presun hodnoty z externej
RAM do ACC. Z adresy, ktorá je v R1 |
|
|
|
|
MOVX |
A,@DPTR |
Presun hodnoty z externej
RAM do ACC. Z adresy, ktorá je v DPTR |
|
|
|
|
MOVX |
@R0,A |
Presun hodnoty z ACC do
externej RAM. Na adresu, ktorá je v R0 |
|
|
|
|
MOVX |
@R1,A |
Presun hodnoty z ACC do
externej RAM. Na adresu, ktorá je v R1 |
|
|
|
|
MOVX |
@DPTR,A |
Presun hodnoty z ACC do
externej RAM. Na adresu, ktorá je v DPTR |
|
|
|
|
PUSH |
intern |
Presun hodnoty z internej
RAM do zásobníka |
|
|
|
|
POP |
intern |
Presun hodnoty zo zásobníka
do internej RAM |
|
|
|
|
XCH |
A,intern |
Výmena hodnôt navzájom medzi
ACC a internou RAM |
|
|
|
|
XCH |
A,Rn |
Výmena hodnôt navzájom medzi
ACC a Rn |
|
|
|
|
XCH |
A,@R0 |
Výmena hodnôt navzájom medzi
ACC a internou RAM na ktorú ukazuje R0 |
|
|
|
|
XCH |
A,@R1 |
Výmena hodnôt navzájom medzi
ACC a internou RAM na ktorú ukazuje R1 |
|
|
|
|
XCHD |
A,@R0 |
Výmena dolných 4 bitov
navzájom medzi ACC a internou RAM na ktorú ukazuje R0 |
|
|
|
|
XCHD |
A,@R1 |
Výmena dolných 4 bitov
navzájom medzi ACC a internou RAM na ktorú ukazuje R1 |
|
|
|
|
|
|
Manipulácia
s booleovskými premennými |
|
|
|
|
CLR |
C |
Nuluje bit CY |
|
|
|
|
CLR |
bit |
Nuluje bit v internej RAM |
|
|
|
|
SETB |
C |
Nastaví bit CY na 1 |
|
|
|
|
SETB |
bit |
Nastaví bit v internej RAM
na 1 |
|
|
|
|
CPL |
C |
Invertuje bit CY |
|
|
|
|
CPL |
bit |
Invertuje bit v internej RAM |
|
|
|
|
ANL |
C,bit |
Logický súčin CY s bitom z
internej RAM. Výsledok sa uloží do CY |
|
|
|
|
ANL |
C,/bit |
Logický súčin CY s negovaným
bitom z internej RAM. Výsledok sa uloží do CY |
|
|
|
|
ORL |
C,bit |
Logický súčet CY s bitom z
internej RAM. Výsledok sa uloží do CY |
|
|
|
|
ORL |
C,/bit |
Logický súčet CY s negovaným
bitom z internej RAM. Výsledok sa uloží do CY |
|
|
|
|
MOV |
C,bit |
Presun bitu z internej RAM
do CY |
|
|
|
|
MOV |
bit,C |
Presun hodnoty bitu CY do
bitu v internej RAM |
|
|
|
|
JC |
rel |
Skok na adresu rel ak je CY=1 |
|
|
|
|
JNC |
rel |
Skok na adresu rel ak je CY=0 |
|
|
|
|
JB |
bit,rel |
Skok na adresu rel ak je bit v internej RAM
rovný 1 |
|
|
|
|
JNB |
bit,rel |
Skok na adresu rel ak je bit v internej RAM
rovný 0 |
|
|
|
|
JBC |
bit,rel |
Skok na adresu rel ak bit v internej RAM je
rovný 1 a vynulovanie tohoto bitu |
|
|
|
|
|
|
Vetvenie
programu |
|
|
|
|
ACALL |
adr11 |
Absolútne volanie
podprogramu |
|
|
|
|
LCALL |
adr16 |
Skok do podprogramu na
adrese adr16 |
|
|
|
|
RET |
|
Návrat z podprogramu do
hlavného programu |
|
|
|
|
RETI |
|
Návrat z prerušenia do
hlavného programu |
|
|
|
|
AJMP |
adr11 |
Absolútny skok |
|
|
|
|
LJMP |
adr16 |
Skok na adresu adr16 |
|
|
|
|
SJMP |
rel |
Krátky skok na relatívnu
adresu |
|
|
|
|
JMP |
@A+DPTR |
Skok na adresu vypočítanú z
hodnôt A+DPTR |
|
|
|
|
JZ |
rel |
Skok, ak ACC=0 |
|
|
|
|
JNZ |
rel |
Skok, ak ACC nerovná sa nule |
|
|
|
|
CJNE |
A,intern,rel |
Porovnanie hodnoty z
internej RAM s ACC a skok na adresu rel, ak hodnoty nie sú rovné. |
|
|
|
|
CJNE |
A,#číslo,rel |
Porovnanie čísla s hodnotou
v ACC a skok na adresu rel,
ak hodnoty nie sú rovné. |
|
|
|
|
CJNE |
Rn,#číslo,rel |
Porovnanie čísla s hodnotou v Rn a skok na adresu rel, ak hodnoty nie sú rovné. |
|
|
|
|
CJNE |
@R0,#číslo,rel |
Porovnanie čísla s hodnotou
z internej RAM na ktorú ukazuje R0 a skok ak sa hodnoty nerovnajú |
|
|
|
|
CJNE |
@R1,#číslo,rel |
Porovnanie čísla s hodnotou
z internej RAM na ktorú ukazuje R1 a skok ak sa hodnoty nerovnajú |
|
|
|
|
DJNZ |
Rn,rel |
Zmenšenie Rn o jednotku a
skok na adresu rel, ak
hodnota v Rn nie je nula |
|
|
|
|
DJNZ |
intern,rel |
Zmenšenie hodnoty v internej
RAM o jednotku a skok na adresu rel, ak hodnota v internej RAM nie je nula |
|
|
|
|
NOP |
|
Prázdna operácia. Nič sa
nevykoná, program pokračuje ďalej. |
|
|
|
|
|
|
|
|
|
|
|
|
Vysvetlivky |
|
|
|
|
|
|
Rn |
- Registre R0 - R8
z aktuálne vybratej banky registrov. |
|
|
|
|
|
intern |
- 8-bitová interná
dátová adresa. |
|
|
|
|
|
číslo |
- 8-bitová
konštanta obsiahnutá v inštrukcii. |
|
|
|
|
|
číslo16 |
- 16-bitová
konštanta obsiahnutá v inštrukcii. |
|
|
|
|
|
adr16 |
- 16-bitová
cieľová adresa. Skok môže byť hocikam v 64 KB adresnom priestore. |
|
|
|
|
|
adr11 |
- 11-bitová
cieľová adresa. Používaná ACALL a AJMP. |
|
|
|
|
|
rel |
- jeden byte so
znamienkom. Umožňuje skok v programe v rozsahu od -128 do +127 bajtov. |
|
|
|
|
|
bit |
- priamo
adresovaný bit vo vnútornej RAM. |
|
|
|
|
|
CY |
- bit prenosu,
7.bit registra PSW |
|
|
|
|
|
Inštrukcie,
ktoré vplývajú na príznaky: |
|
|
|
|
|
|
CY OV AC
CY |
|
|
|
|
|
ADD |
x
x x
SETB C 1 |
|
|
|
|
|
ADDC |
x x x CLR C 0 |
|
|
|
|
|
SUBB |
x x x CPL C x |
|
|
|
|
|
MUL |
0 x ANL C,bit ANL C,/bit x |
|
|
|
|
|
DIV |
0 x ORL C,bit ORL C,/bit x |
|
|
|
|
|
DA |
x MOV
C,bit x |
|
|
|
|
|
RRC |
x CJNE x |
|
|
|
|
|
RLC |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|