2.7.1. MCS-51 , 111.
2.7.2. : 1 (49 ), 2 (46 ), 3 (16 ). , .
2.7.3. ( ) : , 4- , , 16- .
2.7.4. 1- (64 ), 2- (45 ) 4 (2 ). , 12- (. 2.9).
2.7.5. :
1) ,
2) ,
3) ,
4) ,
5) ,
6) .
2.7.6. MCS-51 . 2.4, :
addr ( ),
bit ( ),
data (),
rel 8- (),
addr11 11- (),
addr16 16- (),
A ,
PC ,
(A), (addr), (Rn) , , .
2.4
MCS-51
MOV A,Rn | (n = 0 ¸ 7) | (A) (Rn) |
MOV A,addr | (A) (addr) | |
MOV A,@Ri | (i = 0, 1) | (A) ((Ri)) |
MOV A,#data | (A) data | |
MOV Rn,A | (i = 0 ¸ 7) | (Rn) (A) |
MOV Rn,addr | (i = 0 ¸ 7) | (Rn) (addr) |
MOV Rn,#data | (i = 0 ¸ 7) | (Rn) data |
MOV addr,A | (addr) (A) | |
MOV addr,Rn | (i = 0 ¸ 7) | (addr) (Rn) |
MOV addrD,addrS | (addrD) (addrS) | |
MOV addr,@Ri | (i = 0, 1) | (addr) ((Ri)) |
MOV addr,#data | (addr) data | |
MOV @Ri,A | (i = 0, 1) | ((Ri)) (A) |
MOV @Ri,addr | (i = 0, 1) | ((Ri)) (addr) |
MOV @Ri,#data | (i = 0, 1) | ((Ri)) data |
MOV DPTR,#data16 | (DPTR) data16 | |
MOVC A,@A+DPTR | (A) ((A)+(DPTR)) | |
MOVC A,@A+PC | (PC) (PC)+1 (A) ((A)+(PC)) |
|
|
2.4 ()
MOVX A,@Ri | (8-. , i = 0, 1) | (A) ((Ri)) |
MOVX A,@DPTR | (16-. ) | (A) ((DPTR)) |
MOVX @Ri,A | (8-. , i = 0, 1) | ((Ri)) (A) |
MOVX @DPTR,A | (16-. ) | ((DPTR) (A) |
PUSH addr | (SP) (SP)+1 ((SP)) (addr) | |
POP addr | (addr) ((SP)) (SP) (SP)-1 | |
XCH A,Rn | (i = 0 ¸ 7) | (A) (Rn) |
XCH A,addr | (A) (addr) | |
XCH A,@Ri | (i = 0, 1) | (A) ((Ri)) |
XCHD A,@Ri | (i = 0, 1) | (A0-3) ((Ri)0-3) |
CLR A | (A) 0 | |
CPL A | (A) not (A) | |
INC A | (A) (A)+1 | |
DEC A | (A) (A) -1 | |
RL A | (An+1) (An), n=0¸6 (A0) (A7) | |
RLC A | (An+1) (An), n=0¸6 (A0) (C) (C) (A7) | |
RR A | (An) (An+1), n=0¸6 (A7) (A0) |
2.4 ()
RRC A | (An) (An+1), n=0¸6 (A7) (C) (C) (A0) | |
SWAP A | (A0-3) (A4-7) | |
DA A | (AC)=1 0-3 >9, (A0-3) (A0-3)+6, , (C)=1 4-7 >9, (A4-7) (A4-7)+6 | |
MUL AB | (B)(A) (A) × (B) | |
DIV AB | (A).(B) (A) / (B) | |
CLR C | (C) 0 | |
CLR bit | (bit) 0 | |
SETB C | (C) 1 | |
SETB bit | (bit) 1 | |
CPL C | (C) not (C) | |
CPL bit | (bit) not (bit) | |
ANL C,bit | (C) (C) & (bit) | |
ANL C,/bit | (C) (C) & not(bit) | |
ORL C,bit | (C) (C) V (bit) | |
ORL C,/bit | (C) (C) V not(bit) | |
MOV C,bit | (C) (bit) | |
MOV bit,C | (bit) (C) | |
LJMP addr16 | (PC) addr16 | |
AJMP addr11 | 2 | (PC) (PC)+2 (PC0-10) addr11 |
SJMP rel | 256 | (PC) (PC)+2 (PC) (PC)+rel |
JMP @A+DPTR | (PC) (A)+(DPTR) |
2.4 ()
|
|
JNB bit,rel | , | (PC) (PC)+3, (bit)=0, (PC) (PC)+rel |
JBC bit,rel | , , | (PC) (PC)+3, (bit)=1, (bit) 0 (PC) (PC)+rel |
DJNZ Rn,rel | , | (PC) (PC)+2, (Rn) (Rn) -1, (Rn)¹0, (PC) (PC)+rel |
DJNZ addr,rel | , | (PC) (PC)+2, (addr) (addr) -1, (addr) ¹ 0, (PC) (PC)+rel |
CJNE A,addr,rel | , | (PC) (PC)+3, (A) ¹ (addr), (PC) (PC)+rel, (A) < (addr), (C) 1, (C) 0 |
CJNE A,#data,rel | , | (PC) (PC)+3, (A) ¹ data, (PC) (PC)+rel, (A) < (addr), (C) 1, (C) 0 |
CJNE Rn,#data,rel | , | (PC) (PC)+3, (Rn) ¹ data, (PC) (PC)+rel, (Rn) < (data), (C) 1, (C) 0 |
CJNE @Ri,#data,rel | , (i = 0, 1) | (PC) (PC)+3, ((Ri)) ¹ data, (PC) (PC)+rel, ((Ri)) < (data), (C) 1, (C) 0 |
2.4 ()
JZ rel | , | (PC) (PC)+2, (A)=0, (PC) (PC)+rel |
JNZ rel | , | (PC) (PC)+2, (A)¹0, (PC) (PC)+rel |
JC rel | , | (PC) (PC)+2, ()=1, (PC) (PC)+rel |
JNC rel | , | (PC) (PC)+2, ()=0, (PC) (PC)+rel |
JB bit,rel | , | (PC) (PC)+3, (bit)=1, (PC) (PC)+rel |
LCALL addr16 | (PC) (PC)+3, (SP) (SP) + 1, ((SP)) (PC0-7), (SP) (SP) + 1, ((SP)) (PC8-15), (PC) addr16 | |
ACALL addr11 | 2 | (PC) (PC)+3, (SP) (SP) + 1, ((SP)) (PC0-7), (SP) (SP) + 1, ((SP)) (PC8-15), (PC0-10) addr11 |
RET | (PC8-15) ((SP)), (SP) (SP) - 1 (PC0-7) ((SP)), (SP) (SP) - 1 | |
RETI | (PC8-15) ((SP)), (SP) (SP) - 1 (PC0-7) ((SP)), (SP) (SP) - 1, | |
NOP | (PC) (PC)+1 |
2.4 ()
ADD A,Rn | (n= 0 ¸ 7) | (A) (A)+(Rn) |
ADD A,addr | (A) (A)+(addr) | |
ADD A,@Ri | (i = 0, 1) | (A) (A)+((Ri)) |
ADD A,#data | (A) (A)+data | |
ADDC A,Rn | (A) (A)+(Rn)+(C) | |
ADDC A,addr | (A) (A)+ + (addr)+(C) | |
ADDC A,@Ri | - (i = 0, 1) | (A) (A)+((Ri))+(C) |
ADDC A,#data | (A) (A)+data+(C) | |
SUBB A,Rn | (i = 0 ¸ 7) | (A) (A)-(Rn)-(C) |
SUBB A,addr | (A) (A)-(addr)-(C) | |
SUBB A,@Ri | (i = 0, 1) | (A) (A)-((Ri))-(C) |
SUBB A,#data | (A) (A)-data-(C) | |
INC A | (A) (A)+1 | |
INC Rn | (i = 0 ¸ 7) | (Rn) (Rn)+1 |
INC addr | (addr) (addr)+1 | |
INC @Ri | (i = 0, 1) | ((Ri)) ((Ri))+1 |
INC DPTR | (DPTR) (DPTR)+1 | |
DEC A | (A) (A) -1 | |
DEC Rn | (i = 0 ¸ 7) | (Rn) (Rn) -1 |
2.4 ()
|
|
DEC addr | (addr) (addr) -1 | |
DEC @Ri | (i = 0, 1) | ((Ri)) ((Ri)) -1 |
MUL AB | (B)(A) (A) × (B) | |
DIV AB | (A).(B) (A) / (B) | |
DA A | (AC)=1 0-3 >9, (A0-3) (A0-3)+6, , (C)=1 4-7 >9, (A4-7) (A4-7)+6 | |
ANL A,Rn | (i = 0 ¸ 7) | (A) (A) & (Rn) |
ANL A,addr | (A) (A) & (addr) | |
ANL A,@Ri | (i = 0, 1) | (A) (A) & ((Ri)) |
ANL A,#data | (A) (A) & data | |
ANL addr,A | (addr) (addr) & A | |
ANL addr,#data | (addr) (addr) & & data | |
ORL A,Rn | (i = 0 ¸ 7) | (A) (A) V (Rn) |
ORL A,addr | (A) (A) V (addr) | |
ORL A,@Ri | (i = 0, 1) | (A) (A) V ((Ri)) |
ORL A,#data | (A) (A) V data | |
ORL addr,A | (A) (addr) V (A) | |
ORL addr,#data | (A) (addr) V data |
2.4 ()
XRL A,Rn | (i = 0 ¸ 7) | (A) (A) Å (Rn) |
XRL A,addr | (A) (A) Å (addr) | |
XRL A,@Ri | (i = 0, 1) | (A) (A) Å ((Ri)) |
XRL A,#data | (A) (A) Å data | |
XRL addr,A | - | (A) (addr) Å (A) |
XRL addr,#data | (A) (addr) Å data |
2.7.7. , , . 2.5.
, ( ) ( ) . 1.
2.5