Система команд ОЭВМ семейства MCS-51

 

Мнемоника и операнды Кол-во байт Кол-во циклов Выполняемая операция Флаги
С 0V AC
1. Арифметические операции
ADD A,Ri A (A)+(Ri), i=0...7 + + +
ADD A,rel A (A)+(rel) + + +
ADD A,@Ri A (A)+R(Ri), i=0,1 + + +
ADD A,#data A (A)+(B2) + + +
ADDC A,Ri A (A)+(Ri)+(c), i=0..7 + + +
ADDC A,rel A (A)+(rel)+ (c) + + +
ADDC A,@Ri A (A)+R(Ri)+(c), i=0,1 + + +
ADDC A,#data A (A)+(B2)+ (c) + + +
SUBB A,Ri A (A)-(Ri) -(c), i=0...7 + + +
SUBB A,rel A (A)-(rel) -(c), + + +
SUBB A,@Ri A (A)-R(Ri) -(c), i=0,1 + + +
SUBB A,#data A (A)-(B2)-(c), + + +
INC A A (A)+1
INC Ri Ri (Ri)+1, i=0...7
INC rel Rel (rel) +1
INC DPTR M(DPTR) M(DPTR)+1
DEC A A A-1
DEC Ri Ri (Ri)-1, i=0...7
DEC rel Rel (rel) -1
DEC @Ri R(Ri) R(Ri) -1,i=0...1
MUL AB B D15...D8, AD7...D0
DIV AB A целая часть,OV1,если В=0
DA A Десятичная коррекция
2. Логические операции
ANL A,Ri A (A)+(Ri), i=0...7
ANL A,rel A (A)+(rel)
ANL A,@Ri A (A)+R(Ri), i=0,1
ANL A,#data A (A)+(B2)
ANL rel,A (rel) (A)+(rel) + + +
ANL rel,#data rel (rel)+(B2) + + +
ORL A,Ri A (A)+(Ri), i=0...7 + + +
ORL A,rel A (A)+(rel) + + +
ORL A,@Ri A (A)+R(Ri), i=0,1 + + +
ORL A,#data A (A)+(B2) + + +
ORL rel,A (rel) (A)+(rel) + + +
ORL rel,#data rel (rel)+(B2) + + +
XRL A,Ri A (A)+(Ri), i=0...7 + + +
XRL rel,#data rel (rel)+(B2) + + +
CLR A A 0
CPL A A A/
RL A An+1 An, A0 A7
RLC A An+1 An, A0 c, c A7
RR A An An+1, A7 A0
RRC A An An+1, c A0, A7 c
SWAP A A3-0 « A7-4
3. Команды передачи данных
MOV A,Ri A (Ri), i=0...7
MOV A,rel A (rel)
MOV A,@Ri A R(Ri), i=0,1
MOV A,#data A (B2)
MOV Ri,A (Ri) A, i=0...7
MOV rel,A (rel) A
MOV A,@Ri A R(Ri), i=0,1
MOV A,#data A (B2)
MOV Ri,rel (Ri) (rel)
MOV rel,#data rel (B2)
MOV Ri,#data Ri (B2), i=0...7
MOV rel,Ri rel (Ri), i=0...7
MOV rel1,rel2 rel1 (rel2)
MOV rel,@Ri rel R(Ri), i=0,1
MOV @Ri, A @Ri(A), i=0,1
MOV @Ri, rel @Ri(rel), i=0,1
                     

MOV @Ri, #data

2_1_@Ri(B2), i=0,1
MOV DPTR, #data16 DPTR(B2,B3)
MOVC A,@A+DPTR A M((A)+DPTR)
MOVC A,@A+PC A M((A)+PC+1)
MOVX A,@Ri A M(Ri), i=0,1(внешняя память данных)
MOVX A,@DPTR A M(DPTR)
MOVX @DPTR,A M(DPTR) A
PUSH rel SP (rel), (SP) (SP)+1
POP rel (rel) SP, (SP) (SP)-1
XCH A,Ri (Ri)«A, i=0...7
XCH A,rel A « (rel)
XCH A,@Ri A « R(Ri), i=0,1
XCHD A,@Ri A3-0 « R3-0 (Ri), i=0,1
4. Команды работы с битами
CPL bit bitbit/
CPL C Cßc/
ANL C,bit c bit Ù c
ANL C,bit/ c bit/ Ù c
ORL C,bit c bit Ú c
ORL C,bit/ c bit/ Úc
MOV C,bit c bit
MOV bit,C bit c
CLR C C ß 0
CLR bit bit ß 0
SETB C Cß1
SETB bit bit ß1
5.Команды переходов
ACALL addr11 (PC) (PC)+2, SP (PC), (SP) (SP)+2, (PC) addr11
LCALL addr16 (PC) (PC)+3, SP (PC), (SP) (SP)+2, (PC) addr16
RET (PC) SP, (SP) (SP)-2
RETI (PC) SP, (SP) (SP)-2
AJMP addr11 (PC) (PC)+2, (PC) addr11
AJMP addr16 (PC) (PC)+2, (PC) addr16
SJMP rel (PC) (PC)+2, (PC) (PC) + rel
JMP @A+DPTR (PC) (A)+(DPTR)
JZ rel (PC) (PC)+2, IF A=0 (PC)(PC)+rel
JNZ rel (PC) (PC)+2, IF A¹0 (PC)(PC)+rel
JC rel (PC) (PC)+2, IF c=0 (PC)(PC)+ rel
JNC rel (PC) (PC)+2, IF c¹0 (PC) (PC) + rel
JB bit, rel (PC) (PC)+3, IF bit=0 (PC) (PC) + rel
JNB bit, rel (PC) (PC)+3, IF bit¹0 (PC) (PC) + rel
JBC bit, rel (PC) (PC)+3, IF bit=0 (PC) (PC) + rel, bit0
CJNE A,dir,rel IF (A)=(dir) (PC) (PC)+3, IF (A)>(dir) (PC) (PC) + rel, c0 IF (A)<(dir) (PC) (PC) + rel, c1
CJNE A,#data,rel IF (A)=( #data) (PC) (PC)+3, IF (A)>( #data) (PC) (PC) + rel, c0 IF (A)<( #data) (PC) (PC) + rel, c1
CJNE Ri,#data,rel IF (Ri)=( #data) (PC) (PC)+3,i=0...7 IF (Ri)>( #data) (PC) (PC) + rel, c0 IF (Ri)<( #data) (PC) (PC) + rel, c1
CJNE @Ri,#data,rel IF R(Ri)=( #data)(PC) (PC)+3,i=0...7 IF R(Ri)>(#data)(PC) (PC) + rel,c0 IF R(Ri)<(#data)(PC) (PC) + rel, c1
DJNZ Ri,rel (PC) (PC)+2,RiRi-1,i=0...7, IF (Ri) ¹0 (PC) (PC) + rel,
DJNZ dir,rel (PC) (PC)+3,dirdir-1, IF dir¹0 (PC) (PC) + rel,
NOP Пустая операция
               

Условные обозначения:

1. rel – метка перехода по программе в диапазоне одной страницы памяти программ 00 - FF.

Data16 - двухбайтные данные, хранящиеся во 2 и 3 байтах команды.

Data - байт данных, хранящийся во 2 байте команды.

B2 - второй байт команды.

M(X) - содержимое ячейки памяти, адресуемой содержимым Х - либо одним, либо двумя байтами.

Dir - ппрямоадресуемая ячейка внутренней памяти в диапазоне 00 -7F.

P000) - номер страницы памяти команд (всего 8 страниц от р000 до р111), адресуемой командами коротких переходов и вызовов.

Bit - прямоадресуемый бит внутренней памяти данных в диапазоне адресов 20...3F (bit может принимать значения 00...7F.



php"; ?>