MSC 51
MSC 51 111 , : , , , . (94) ( 12 1 ).
. 9.
9
(n=0...7) | MOV ,Rn | () ← (Rn) |
MOV A,ad | () ← (ad) | |
. (i=0, 1) | MOV A,@Ri | (A) ← ((Ri)) |
MOV A,#data8 | () ← #data8 | |
MOV Rn, | (Rn) ← () | |
MOV Rn,d | (Rn) ← (ad) | |
MOV Rn,#dt8 | (Rn) ← #data8 | |
MOV ad,A | (ad) ← () | |
MOV d,Rn | (ad) ← (Rn) | |
MOV add,ads | (add) ← (ads) | |
. | MOV ad,@Ri | (ad) ← ((Ri)) |
MOV ad,#data8 | (ad) ← #data8 | |
. | MOV @Ri,A | ((Ri)) ← () |
. | MOV @Ri,ad | ((Ri)) ← (ad) |
. | MOV @Ri,#data8 | ((Ri)) ← #data8 |
MOV DPR,#data16 | (DPR) ← #data16 | |
MOVC A,@A+DPR | () ← (() + (DPR)) | |
MOVC ,@+ | ()←() + 1; ()←(() +()) | |
. | MOVX A,@Ri | () ← ((Ri)) |
. | MOVX A,@DPR | () ← ((DPR)) |
. | MOVX @Ri,A | ((Ri)) ← () |
. | MOVX @DPR,A | ((DPR)) ← () |
PUSH ad | (SP) ← (SP) + 1; ((SP)) ← (ad) | |
ad | (ad) ← ((SP)); (SP) ← (SP) - 1 | |
A,Rn | () ↔ (Rn) | |
,ad | () ↔ (ad) | |
. | A,@Ri | () ↔ ((Ri)) |
. . . | D A,@Ri | (0...3) ↔ ((Ri0...3)) |
.9 :
;
Ri (i = 0 1);
Rn () ; n = 0 ÷ 7;
|
|
PC ;
DPTR - ;
ad 8- ( , );
add 8- - ( , );
ads 8- - ( , );
#data8 8- ();
#data16 16- ();
SP ;
@ ;
. 9. ( -) . ( ) R0, R1, DPTR PC.
. 9 , .
3 .9. , , . , , ( ).
. 10.
10
(n=0...7) | DD A,Rn | () ← () +(Rn) |
DD A,ad | () ← () +(ad) | |
. (i = 0, 1) | DD A,@Ri | () ← () + ((Ri)) |
DD A,#data8 | () ← () + #data8 | |
DDC A,Rn | () ← () +(Rn) + (C) | |
DDC A,ad | () ← () +(ad) + (C) | |
. | DDC A,@Ri | () ← () + ((Ri))+ (C) |
DDC A,#data8 | () ← () + #data8+ (C) | |
D | (0 -3)>9 V ((C) = 1), (0-3) ← (0-3)+6. (4-7)>9 V ((C) = 1), (4-7) ← (4-7)+6 | |
SUBB A,Rn | () ← () -(Rn) - (C) | |
SUBB A,ad | () ← () -(ad) - (C) | |
. | SUBB A,@Ri | () ← () - ((Ri))- (C) |
SUBB A,#data8 | () ← () - #data8- (C) | |
INC | () ← () +1 | |
INC Rn | (Rn) ←(Rn) + 1 | |
INC ad | (ad) ←(ad) + 1 | |
. | INC @Ri | ((Ri)) ← ((Ri)) + 1 |
INC DPTR | (DPTR) ← (DPTR) + 1 | |
D | () ← () -1 | |
D Rn | (Rn) ←(Rn) - 1 | |
D ad | (ad) ←(ad) - 1 | |
. | D @Ri | ((Ri)) ← ((Ri)) - 1 |
MUL AB | ()() ← () * () | |
DIV AB | (),() ← ()/ () |
|
|
.10: V .
(D ). -[ , . ADD ADDC.
. 11.
11
(n=0...7) | ANL A,Rn | () ← () ^ (Rn) |
ANL A,ad | () ← () ^ (ad) | |
c o . (i = 0,1) | ANL A,@Ri | () ← () ^ ((Ri)) |
ANL A,#data8 | () ← () ^ #data8 | |
ANL ad,A | (ad) ← (ad) ^ () | |
ANL ad,#data8 | (ad) ← (ad) ^ #data8 | |
(n = 0...7) | ORL A,Rn | () ← () V (Rn) |
ORL A,ad | () ← () V. (ad) | |
. (i = 0, 1) | ORL A,@Ri | () ← () V. ((Ri)) |
ORL A,#data8 | () ← () V #data8 | |
ORL ad,A | (ad) ← (ad) V () | |
ORL ad,#data8 | (ad) ← (ad) V #data8 | |
(n = 0...7) | XRL A,Rn | () ← () . (Rn) |
XRL A,ad | () ← () . (ad) | |
o c o . (i = 0,1) | XRL A,@Ri | () ← () . ((Ri)) |
XRL A,#data8 | () ← () . #data8 | |
XRL ad,A | (ad) ← (ad) . () | |
XRL ad,#data8 | (ad) ← (ad) . #data8 | |
o | CLR A | () ← 0 |
CPL A | () ← (. ) | |
RL A | (.n+1) ← (.n), n=0-6; (.0) ← (.7) | |
RLC A | (.n+1)← (.n), n=0-6; (.0)←(); ()←(.7) | |
RR A | (.n) ← (.n+1), n=0-6; (.7) ← (.0) | |
RRC A | (.n)←(.n+1), n=0-6; (.7)←(); () ←(.0) | |
SWAP A | (.1, .1, .2, .) ↔ (.4, .5, :6, .7) |
.11: V ; ^ ;
. 12
12
CLR C | () ← 0 | |
CLR bit | (bit) ← 0 | |
SE | () ← 1 | |
SE bit | (bit) ← 1 | |
CPL C | () ← . () | |
CPL bit | (bit) ←. (bit) | |
ANL C,bit | () ← () ^ (bit) | |
ANL C,/bit | () ← () ^ .(bit) | |
ORL C,bit | () ← () V (bit) | |
ORL C,/bit | () ← () V.(bit) | |
MOV C,bit | () ← (bit) | |
MOV bit, | (bit) ← () |
. 12. bit , ACC.n (n=0÷7).
|
|
. 13
13
LJMP ad16 | () ← ad16 | |
JMP ad11 | () ← ()+2, ( 0-10) ← ad11 | |
256 | SJMP rel | () ← ()+2, () ← ()+l |
JMP @A+DPR | () ← (A)+(DP1R) | |
, 0 | JZ rel | () ← ()+2, ()=0, ()←()+l |
, 0 | JNZ rel | ()← ()+2, ()<>0, ()←()+rl |
, | JC rel | ()← ()+2, (C)=1, ()←()+rl |
, | JNC rel | ()← ()+2, (C)=0, ()←()+rl |
, | JB bit,rel | ()← ()+3, bit=1, ()←()+rl |
, | JNB bit,rel | ()← ()+3, bit=0, ()←()+rl |
, , | JBC bit,rel | ()← ()+3, bit=1, ()←()+rl, (bit) ← 0 |
, | DJNZ Rn,rel | () ← ()+2, (Rn) ← (Rn) -1, (Rn)<>0, () ← ()+l |
, | DJNZ ad,rel | () ← ()+2, (ad) ← (ad) -1, (ad)<>0, () ← ()+l |
, | CJNE A,ad,rel | () ← ()+3, ()<> (ad), () ← (PC)+rel, (A) < (ad), () ← 1, () ← 0 |
, | CJNE A,#data8,rel | ()←()+, (A)<>#data8, () ←(PC)+rel, (A)<#data8. () ← 1, () ←0 |
, | CJNE Rn,#dt8,l | ()←()+, (Rn)<>#data8, () ←(PC)+rel, (Rn)<#data8. () ← 1, () ←0 |
, | CJNE @Ri,#data8,rel | ()←()+, ((Ri))<>#data8, () ←(PC)+rel, ((Ri))<#data8. () ← 1, () ←0 |
LCALL ad16 | () ← ()+3; (SP) ← (SP)+1 ((SP)) ← ( 0-7); (SP) ← (SP)+1 ((SP)) ← ( 8-15); () ← ad16 | |
ACALL ad11 | () ← ()+3; (SP) ← (SP)+1 ((SP)) ← ( 0-7); (SP) ← (SP)+1 ((SP)) ← ( 8-15); ( 0-10) ← ad11 | |
RET | ( 8-15) ← ((SP)); (SP) ← (SP)-1; ( 0-7) ← ((SP)); (SP) ← (SP)-1 | |
RETI | ( 8-15) ← ((SP)); (SP) ← (SP)-1; ( 0-7) ← ((SP)); (SP) ← (SP)-1 | |
NOP | (PC) ← (PC)+1 |
. 13. ad16, ad11, rel , , . MCS 51 LJMP, AJMP, SJMP JMP. LJMP.
|
|
, .
PSW 4 :CY , , V , .
, .
CY , . CY .
OV , , . 255 0. , OV .
. , 1, .
. 14 , . , . 14 , . . 14 :
, PSW ;
PSW.
14
ADD | CY,OV,AC |
ADDC | CY,OV,AC |
SUBB | CY,OV,AC |
MUL | CY=0, OV |
DIV | CY=0, OV |
DA A | CY |
RRC | CY |
RLC | CY |
SETB C | CY=1 |
CLR C | CY=0 |
CPL C | CY = /CY |
ANL C,bit | CY |
ANL C,/bit | CY |
ORL C,bit | CY |
ORL C,/bit | CY |
MOV C,bit | CY |
CJNE | CY |