Instrukční sada
A, ACC - akumulátor
B - registr B používaný především při aritmetickém násobení a dělení
adresa - 8.bitová adresa
adresa11 - 11.bitová adresa(uvnitř 2K stránky)
adresa16 - 16.bitová adresa
rel.adresa - relativní adresa(+127 až -127 bytů vzhledem k momentální adrese)
#data - 8.bitová hodnota
#data16 - 16.bitová hodnota
Rn - registry R0 až R7 aktuální registrové banky
Ri - registry R0 a R1 aktuální registrové banky
bit - přímo adresovaný bit
C - tzv. carry bit v registr PSW
DPTR - 16.bitový ukazatel do pameti
PC - programový čítač
Aritmetické operace: | ||
instrukce | operandy | popis |
ADD ADD ADD ADD ADDC ADDC ADDC ADDC SUBB SUBB SUBB SUBB INC INC INC INC DEC DEC DEC DEC INC MUL DIV DA |
A,Rn A,adresa A,@Ri A,#data A,Rn A,adresa A,@Ri A,#data A,Rn A,adresa A,@Ri A,#data A Rn adresa @Ri A Rn adresa @Ri DPTR AB AB A |
přičte Rn k ACC přičte obsah adresy k ACC přičte obsah nepřímé adresy k ACC přičte přímá data k ACC přičte C a Rn k ACC přičte C a obsah adresy k ACC přičte C a obsah nepřímé adresy k ACC přičte C a přímá data k ACC odečte C a Rn od ACC odečte C a obsah adresy od ACC odečte C a obsah nepřímé adresy od ACC odečte C a přímá data od ACC zvětší obsah ACC o 1 zvětší obsah Rn o 1 zvětší obsah adresy o 1 zvětší obsah nepřímé adresy zmenší obsah ACC o 1 zmenší obsah Rn o 1 zmenší obsah adresy o 1 zmenší obsah nepřímé adresy zvětší obsah ukazatele dat o 1 vynásobí registr A a registr B dělí registr A registrem B desítková úprava ACC |
Logické operace: | ||
instrukce | operandy | popis |
ANL ANL ANL ANL ANL ANL ORL ORL ORL ORL ORL ORL XRL XRL XRL XRL XRL XRL CLR CPL RL RLC RR RRC SWAP |
A,Rn A,adresa A,@Ri A,#data adresa,A adresa,#data A,Rn A,adresa A,@Ri A,#data adresa,A adresa,#data A,Rn A,adresa A,@Ri A,#data adresa,A adresa,#data A A A A A A A |
logický součin ACC s obsahem registru logický součin ACC s obsahem adresy logický součin ACC s obsahem nepřímé adresy logický součin ACC s přímými daty logický součin obsahu adresy s ACC logický součin obsahu adresy s přímými daty logický součet ACC s obsahem registru logický součet ACC s obsahem adresy logický součet ACC s obsahem nepřímé adresy logický součet ACC s přímými daty logický součet obsahu adresy s ACC logický součet obsahu adresy s přímými daty Exclusive-OR ACC s obsahem registru Exclusive-OR ACC s obsahem adresy Exclusive-OR ACC s obsahem nepřímé adresy Exclusive-OR ACC s přímými daty Exclusive-OR obsahu adresy s ACC Exclusive-OR obsahu adresy s přímými daty nuluje obsah ACC neguje obsah ACC rotace ACC vlevo rotace ACC a C vlevo rotace ACC vpravo rotace ACC a C vpravo vymění horní a dolní 4 bity ACC |
Přesuny dat: | ||
instrukce | operandy | popis |
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOVC MOVC MOVX MOVX MOVX MOVX PUSH POP XCH XCH XCH XCHD |
A,Rn A,adresa A,@Ri A,#data Rn,A Rn,adresa Rn,#data adresa,A adresa,Rn adresa1,adresa2 adresa,@Ri adresa,#data @Ri,A @Ri,adresa @Ri,#data DPTR,#data16 A,@A+DPTR A,@A+PC A,@Ri A,@DPTR @Ri,A @DPTR,A adresa(ACC) adresa(ACC) A,Rn A,adresa A,@Ri A,@Ri |
přesun Rn do ACC přesun adresy do ACC přesun nepřímé adresy do ACC přesun přímých dat do ACC přesun ACC do Rn přesun adresy do Rn přesun nepřímé adresy do Rn přesun ACC na adresu přesun Rn na adresu přesun adresy2 na adresu1 přesun nepřímé adresy na adresu přesun přímých dat na adresu přesun ACC na nepřímou adresu přesun adresy na nepřímou adresu přesun dat na nepřímou adresu přesun 16b dat do ukazatele dat přesun z adresy A+DPTR v prog. paměti do ACC přesun z adresy A+PC v prog. paměti do ACC přesun obsahu externí paměti do ACC přesun obsahu externí paměti do ACC přesun ACC do externí paměti přesun ACC do externí paměti uložení obsahu adresy(ACC) do zásobníku obnovení obsahu adresy(ACC) ze zásobníku výměna ACC s Rn výměna ACC s adresou výměna ACC s nepřímou adresou výměna dolních 4 bitů mezi ACC a nepř.adresou |
Booleovské instrukce: | ||
instrukce | operandy | popis |
CLR CLR SETB SETB CPL CPL ANL ANL ORL ORL MOV MOV |
C bit C bit C bit C,bit C,/bit C,bit C,/bit C,bit bit,C |
vynuluje C vynuluje bit nastaví C nastaví bit neguje C neguje bit logický součin C s bitem logický součin C s negací bitu logický součet C s bitem logický součet C s negací bitu přesun bitu do C přesun C do bitu |
Nepodmíněné skoky: | ||
instrukce | operandy | popis |
ACALL LCALL RET RETI AJMP LJMP SJMP JMP |
adresa11 adresa16 adresa11 adresa16 rel.adresa @A+DPTR |
volání podprogramu volání podprogramu návrat z podprogramu návrat z obsluhy přerušení skok dlouhý skok krátký skok skok na adresu DPTR+A |
Podmíněné skoky: | ||
instrukce | operandy | popis |
JC JNC JB JNB JBC JZ JNZ CJNE CJNE CJNE CJNE DJNZ DJNZ |
rel.adresa rel.adresa bit,rel.adresa bit,rel.adresa bit,rel.adresa rel.adresa rel.adresa A,adresa,rel.adresa A,#data,rel.adresa Rn,#data,rel.adresa @Ri,#data,rel.adresa Rn,rel.adresa adresa,rel.adresa |
skok při C=1 skok při C=0 skok při bit=1 skok při bit=0 skok při bit=1 a nulování bitu skok při ACC=0 skok při ACC<>0 skok při ACC<>adresa skok při ACC<>data skok při Rn<>data skok při @Ri<>data zmenší Rn o 1 a skočí při Rn<>0 zmenší obsah adresy o 1 a skočí při adresa<>0 |
Ostatní instrukce: | ||
instrukce | operandy | popis |
NOP | nic nevykoná,ale trvá 1 strojový cyklus |