Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 ИССЛЕДОВАНИЕ СИСТЕМЫ КОМАНД.doc
Скачиваний:
16
Добавлен:
22.11.2019
Размер:
447.49 Кб
Скачать

2.3. Система команд мк51

Система команд МК51 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, операций передачи управления и операций с битами.

Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла. При тактовой частоте 12 МГц длительность машинного цикла составляет 1 мкс.

Ниже приведены 13 типов команд МК51. Первый байт команды всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.

D 7...D0

1. КОП (NOP, RR A, INC A.)

D7...D0

2. КОП #d (MOV R0,#FFh)

3. КОП ad (MOV R0, 21h)

4. КОП bit (CPL 1Fh)

5. КОП rel (SJMP J1)

6. A+КОП A7...A0 (AJMP J2)

D7...D0

7. КОП ad #d (M0V 21h, #Afh)

8. КОП ad rel (DJNZ 21h, J3)

9. КОП ads add (MOV 48h, 45h)

10. КОП #d rel (CJNE A, #Bfh, J4)

11. КОП bit rel (JB E2, J5)

12. КОП ad16h ad16l (LCALL START)

13. КОП #d16h #d16l (MOV DPTR, #1234h)

В таблице 1 приведена система команд микроЭВМ семейства МК51.

Таблица 1.

7-4\ 3-0

0000(0)

0001(1)

0010(2)

0011(3)

0100(4)

0101(5)

0110(6)

0111(7)

0000(0)

NOP

AJMP addr

LJMP addr

RR A

INC A

INC direct

INC @R0

INC @R1

0001(1)

JBC bit, adr

ACALL addr

LCALL addr

RRC A

DEC A

DEC direct

DEC @ R0

DEC @ R1

0010(2)

JB bit,addr

AJMP addr

RET

RL A

ADD A,#data

ADD A, drct

ADD A,@R0

ADD A,@R1

0011(3)

JNB bit,addr

ACALL addr

RETI

RLC A

ADDC A,#data

ADDC A, drct

ADDC A,@R0

ADDC A,@R1

0100(4)

JC addr

AJMP addr

ORL drct, A

ORL drct,#d

ORL A, #data

ORL A, #direct

ORL A, @R0

ORL A, @R1

0101(5)

JNC addr

ACALL addr

ANL drct,A

ANL drct,#d

ANL A,#data

ANL A,#drct

ANL A , @R0

ANL A , @R1

0110(6)

JZ addr

AJMP addr

XRL drct, A

XRL drct, #d

XRL A, #data

XRL A, #direct

XRL A, @R0

XRL A, @R1

0111(7)

JNZ addr

ACALL addr

ORL C, bit

JMP@A+DPTR

MOV A,#data

MOV drct,#d

MOV @R0,#d

MOV @R1,#d

1000(8)

SJMP addr

AJMP addr

ANL C,bit

MOVC A,@A+PC

DIV AB

MOV direct, direct

MOV direct, @R0

MOV direct, @R1

1001(9)

MOV DPTR, #data

ACALL addr

MOV bit, C

MOVC A,@A+ DPTR

SUBB A,#data

SUBB A, drct

SUBB A,@R0

SUBB A,@R1

1010(A)

ORL C, / bit

AJMP addr

MOV C, bit

INC DPTR

MUL AB

MOV @R0, direct

MOV @R1, direct

1011(B)

ANL C, / bit

ACALL addr

CPL bit

CPL C

CJNE A, #d, addr

CJNE A, drct, addr

CJNE @R0, #d,addr

CJNE @R1, #d,addr

1100(C)

PUSH direct

AJMP addr

CLR bit

CLR C

SWAP A

XCH A,#drct

XCH A,@R0

XCH A,@R1

1101(D)

POP direct

ACALL addr

SETB bit

SETB C

DA A

DJNZ drct,adr

XCHD A,@R0

XCHD A,@R1

1110(E)

MOVX @DPTR, A

AJMP addr

MOVX A, @R0

MOVX A, @R1

CLR A

MOV A, direct

MOV A, @R0

MOV A, @R1

1111(F)

MOVX @DPTR,A

ACALL addr

MOVX @R0,A

MOVX @R1,A

CPL A

MOV direct,A

MOV @R0,A

MOV @R1,A

7-4\ 3-0

1000(8)

1001(9)

1010(A)

1011(B)

1100(C)

1101(D)

1110(E)

1111(F)

0000(0)

INC R0

INC R1

INC R2

INC R3

INC R4

INC R5

INC R6

INC R7

0001(1)

DEC R0

DEC R1

DEC R2

DEC R3

DEC R4

DEC R5

DEC R6

DEC R7

0010(2)

ADD A, R0

ADD A, R1

ADD A, R2

ADD A, R3

ADD A, R4

ADD A, R5

ADD A, R6

ADD A, R7

0011(3)

ADDC A, R0

ADDC A, R1

ADDC A, R2

ADDC A, R3

ADDC A, R4

ADDC A, R5

ADDC A, R6

ADDC A, R7

0100(4)

ORL A, R0

ORL A, R1

ORL A, R2

ORL A, R3

ORL A, R4

ORL A, R5

ORL A, R6

ORL A, R7

0101(5)

ANL A, R0

ANL A, R1

ANL A, R2

ANL A, R3

ANL A, R4

ANL A, R5

ANL A, R6

ANL A, R7

0110(6)

XRL A, R0

XRL A, R1

XRL A, R2

XRL A, R3

XRL A, R4

XRL A, R5

XRL A, R6

XRL A, R7

0111(7)

MOV R0, #d

MOV R1, #d

MOV R2, #d

MOV R3, #d

MOV R4, #d

MOV R5, #d

MOV R6, #d

MOV R7, #d

1000(8)

MOV drct,R0

MOV drct,R1

MOV drct,R2

MOV drct,R3

MOV drct,R4

MOV drct,R5

MOV drct,R6

MOV drct,R7

1001(9)

SUBB A, R0

SUBB A , R1

SUBB A , R2

SUBB A , R3

SUBB A , R4

SUBB A , R5

SUBB A , R6

SUBB A , R7

1010(A)

MOV R0,drct

MOV R1,drct

MOV R2,drct

MOV R3,drct

MOV R4,drct

MOV R5,drct

MOV R6,drct

MOV R7,drct

1011(B)

CJNE R0, #d, addr

CJNE R1, #d, addr

CJNE R2, #d, addr

CJNE R3, #d, addr

CJNE R4, #d, addr

CJNE R5, #d, addr

CJNE R6, #d, addr

CJNE R7, #d, addr

1100(C)

XCH A, R0

XCH A, R1

XCH A, R2

XCH A, R3

XCH A, R4

XCH A, R5

XCH A, R6

XCH A, R7

1101(D)

DJNZ R0,addr

DJNZ R1,addr

DJNZ R2,addr

DJNZ R3,addr

DJNZ R4,addr

DJNZ R5,addr

DJNZ R6,addr

DJNZ R7,addr

1110(E)

MOV A, R0

MOV A, R1

MOV A, R2

MOV A, R3

MOV A, R4

MOV A, R5

MOV A, R6

MOV A, R7

1111(F)

MOV R0, A

MOV R1, A

MOV R2, A

MOV R3, A

MOV R4, A

MOV R5, A

MOV R6, A

MOV R7, A

Для адресации бит используется прямой 8-битный адрес. Косвенная адресация бит невозможна. 4-битные операнды используются только при операциях обмена (команды SWAP и XCHD). 8-битным операндом может быть ячейка памяти программ или данных, константа, регистры специальных функций и порты ввода-вывода. Порты и SFR адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры (R0, R1, DPTR, PC). Двухбайтные операнды - это константы и прямые адреса, для представления которых используются 2 и 3 байты команд.

Набор команд MК-51 поддерживает следующие режимы адресации.

Прямая адресация (Direct Addressing).

Операнд определяется 8-битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров SFR.

Косвенная адресация (Indirect Addressing).

В этом случае инструкция адресует регистр, содержащий адрес операнда. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP. Для 16-битной адресации используется только DPTR. Например: