Seznam instrukci 8051, 8751, 8031
ADD A,R0-7 ADDC A,R0-7 SUBB A,R0-7
ADD A,@R0-1 ADDC A,@R0-1 SUBB A,@R0-1
ADD A,# data ADDC A,#data SUBB A,#data
ADD A,dataadr ADDC A,dataadr SUBB A, dataadr
ANL A,R0-7 ORL A,R0-7 XRL A,R0-7
ANL A,@R0-1 ORL A,@R0-1 XRL A,@R0-1
ANL A,# data ORL A,# data XRL A,# data
ANL A,dataadr ORL A,dataadr XRL A,dataadr
ANL dataadr,#data ORL dataadr,#data XRL dataadr,#data
ANL dataadr,A ORL dataadr,A XRL dataadr,A
---------------------------------------------------------
CLR A CPL A DA A (C=1 je-li [A]>99)
---------------------------------------------------------
INC A DEC A
INC R0-7 DEC R0-7
INC @R0-1 DEC @R0-1
INC dataadr DEC dataadr
INC DPTR
---------------------------------------------------------
CLR C (C<--0) SETB C (C<--1) CPL C
CLR bitadr SETB bitadr CPL bitadr
ANL C,bitadr ORL C,bitadr
ANL C,/bitadr ORL C,/bitadr
MOV C,bitadr MOV bitadr,C
---------------------------------------------------------
MOV A,R0-7 MOV R0-7,A MOV A,#data
MOV A,@R0-1 MOV @R0-1,A MOV R0-7,#data
MOV A,dataadr MOV dataadr,A MOV @R0-1,#data
MOV dataadr,@R0-1 MOV @R0-1,dataadr MOV dataadr,#data
MOV dataadr,R0-7 MOV R0-7,datadr MOV dataadr1, datadr2
MOV DPTR,#data16
MOVC A,@A+PC (A <-- A+PC+1 z ROM)
MOVC A,@A+DPTR (A <-- A+DPTR z ROM)
MOVX A,@R0-1 MOVX A,@DPTR
MOVX @R0-1,A MOVX @DPTR,A
---------------------------------------------------------
XCH A,R0-7 XCHD A,@R0-1 (jen D3...D0)
XCH A,@R0-1 XCH A,dataadr
---------------------------------------------------------
RL A RR A
RLC A RRC A
SWAP A (D7...D4 <---> D3...D0)
---------------------------------------------------------
MUL AB (BA <--
A*B, ÄĂsla bez znam., B=High, A=Low) (C=0)DIV AB ( A <-- A/B, B <--
zbytek, ÄĂsla bez znam.) (C=0)---------------------------------------------------------
ACALL adr11 (v rĂĄmci strĂĄnky 2K)
LCALL adr16 (v råmci plných 64K)
---------------------------------------------------------
RET neobnovuje PSW
RETI (povoluje INT. stejnĂŠ Äi niŞťà prior.) " "
--------------------------------------------------------
-PUSH dataadr POP dataadr
---------------------------------------------------------
AJMP adr11 (v rĂĄmci strĂĄnky 2K)
LJMP adr16 (v råmci plných 64K)
SJMP adr8 (adr. relativnĂ)
JMP @A+DPTR (PC <-- A+DPTR)
---------------------------------------------------------
Adresy vĹždy relativnĂ:
DJNZ R0-7,adr8 (DCR reg , jump if reg >0)
DJNZ dataadr,adr8 (DCR data, jump if data>0)
JC adr8 (jump if C=1)
JNC adr8 (jump if C!=1)
JZ adr8 (jump if A=0)
JNZ adr8 (jump if A!=0)
JB bitadr,adr8 (jump if bit=1)
JBC bitadr,adr8 (souÄasnÄ vynuluje bit)
JNB bitadr,adr8 (jump if bit=0)
CJNE @R0-1,#data,adr8 (jump if operand1!=operand2)| C=1 je-li
CJNE R0-7,#data,adr8 " | 1. operand
CJNE A,#data,adr8 " | < 2. operand
CJNE A,dataadr,adr8 " | "
---------------------------------------------------------
NOP
---------------------------------------------------------
SpeciĂĄlnĂ funkÄnĂ registry (SFR) lze a
dresovat jen pĹĂmo, jako "dataadr". VĹĄechny instrukce pro prĂĄci s daty platĂ i pro spec. registry; proto nejsou instrukce pro vstup/vĂ˝stup dat, pro SP, atd. U nÄkterĂ˝ch SFR lze adresovat jednotlivĂŠ bity."dataadr"- adr. ve vnitĹnĂ RAM i SFR, tj. 0-255.
"bitadr" -
ÄĂslo bitu 0-7 ve slovÄ (lze jen na adresĂĄch 32-47 RAM a 128-255 pro SFR).- ÄĂslo bitu 0-127 v bitovĂŠm poli (sem se mapujĂ za sebou bity z výťe uvedenĂ˝ch oblastĂ RAM a nÄkterĂ˝ch SFR).
ACC (E0H) akumulĂĄtor IE (A8H) povolovĂĄnĂ interruptĹŻ
PSW (D0H) s
tavovĂŠ slovo IP (B8H) priorita interrruptĹŻB (F0H) reg. B SBUF (99H) data pro sĂŠriovĂ˝ kanĂĄl
DPH (83H) adr. ext. RAM (H) SCON (98H) ĹĂzenĂ sĂŠriovĂŠho kanĂĄlu
DPL (82H) - " - (L) TCON (88H) ĹĂzenĂ ÄĂtaÄĹŻ/ÄasovaÄĹŻ
SP (81H) ukazatel zĂĄsobnĂku TH0 (8CH) data pro
ÄĂt/Äas 0 (H)P0 (80) brĂĄna 0 TH1 (8DH) " " " 1 (H)
P1 (90H) " 1 TL0 (8AH) " " " 0 (L)
P2 (A0H) " 2 TL1 (8BH) " " " 1 (L)
P3 (B0H) " 3 TMOD (89H) mĂłd ÄĂtaÄĹŻ/ÄasovaÄĹŻ
âââââŹââââŹââââŹââââŹââââŹââââŹââââŹââââ
PSW: â C âAC âF0 âRS1âRS0â - âOV â P â
âââââ´ââââ´ââââ´ââââ´ââââ´ââââ´ââââ´ââââ
pĹenos ................|
| | | | | |pom. pĹenos ......
........| | | | | |bit pro vĹĄeob. pouĹžitĂ
......| | | | |volba reg. banku ................|..| | |
pĹeteÄenĂ ..........
......................| |parita obsahu A .............................|
C = 1...jestliĹže operace vyvolala pĹenos z 8. bitu.
OV =1...je-li pĹenos ze 7. do 8. bitu a nenĂ z 8. bitu, nebo nenĂ-li pĹenos ze 7. do 8. bitu a je z 8. bitu.
u MUL: OV=0 je-li B=0, jinak je 1.
u DIV: OV=1 pĹi dÄlenĂ nulou, jinak je 0.
P =
1....pĹi lichĂŠ paritÄ obsahu akumulĂĄtoru, 0 pĹi sudĂŠ.Registry R0-R7 tvoĹĂ 4 skupiny (bank), pĹepĂnanĂŠ pomocĂ 2 bitĹŻ PSW, pĹĂsluĹĄnĂŠ adresy ve vnitĹnĂ RAM: 0-7, 8-15, 16-23, 24-31.
ZĂĄsobnĂk se po RESET nastavuje do pozice 7, prvnĂ zĂĄpis je na pozici 8 (post
upuje nahoru). Lze pĹestavit zĂĄsahem do SFR "SP".