Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Stenin Lab / Лабораторная работа №2-2012

.pdf
Скачиваний:
59
Добавлен:
10.02.2015
Размер:
1.15 Mб
Скачать

Таблица 2 – Группа команд арифметических операций

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

 

 

 

 

 

 

 

 

1

Сложение аккумулятора с регистром (n=0..7)

ADD A, Rn

00101rrr

1

1

1

(A) (A) + (Rn)

2

Сложение аккумулятора с прямоадресуемым байтом

ADD A, ad

00100101

3

2

1

(A) (A) + (ad)

3

Сложение аккумулятора с байтом из РПД (i=0,1)

ADD A, @Ri

0010011i

1

1

1

(A) (A) + РПД(Ri)

4

Сложение аккумулятора с константой

ADD A, #d

00100100

2

2

1

(A) (A) + d

5

Сложение аккумулятора с регистром и переносом

ADDC A, Rn

00111rrr

1

1

1

(A) (A) + (Rn) + (C)

6

Сложение аккумулятора с прямоадресуемым байтом и

ADDC A, ad

00110101

3

2

1

(A) (A) + (ad) + (C)

 

переносом

 

 

 

 

 

 

 

7

Cложение аккумулятора с байтом из РПД и переносом

ADDC A, @Ri

0011011i

1

1

1

(A) (A) + РПД(Ri) + (C)

8

Cложение аккумулятора с константой и переносом

ADDC A, #d

00110100

2

2

1

(A) (A) + d + (C)

9

Десятичная коррекция аккумулятора (после сложения

DA A

11010100

1

1

1

Если ((A3-0) > 9) ИЛИ ((AC)=1), то

 

двух операндов, представленных в упакованном BCD-

 

 

 

 

 

 

7-0) (A7-0) + 6, затем,

 

коде)

 

 

 

 

 

 

если ((A7-4) > 9) ИЛИ ((C)=1), то

 

 

 

 

 

 

 

 

(A7-4) (A7-4) + 6

10

Вычитание из аккумулятора регистра и заема

SUBB A, Rn

10011rrr

1

1

1

(A) (A) – (C) – (Rn)

11

Вычитание из аккумулятора прямоадресуемого байта и

SUBB A, ad

10010101

3

2

1

(A) (A) – (C) – (ad)

 

заема

 

 

 

 

 

 

 

12

Вычитание из аккумулятора байта РПД и заема

SUBB A, @Ri

1001011i

1

1

1

(A) (A) – (C) – РПД(Ri)

13

Вычитание из аккумулятора константы и заема

SUBB A, #d

10010100

2

2

1

(A) (A) – (C) – d

14

Инкремент аккумулятора

INC

A

00000100

1

1

1

(A) (A) + 1

15

Инкремент регистра

INC

Rn

00001rrr

1

1

1

(Rn) (Rn) + 1

16

Инкремент прямоадресуемого байта

INC

ad

00000101

3

2

1

(ad) (ad) + 1

17

Инкремент байта в РПД

INC

@Ri

0000011i

1

1

1

РПД(Ri) РПД(Ri) + 1

18

Инкремент указателя данных

INC

DPTR

10100011

1

1

2

(DPTR) (DPTR) + 1

19

Декремент аккумулятора

DEC

A

00010100

1

1

1

(A) (A) – 1

20

Декремент регистра

DEC

Rn

00011rrr

1

1

1

(Rn) (Rn) – 1

21

Декремент прямоадресуемого байта

DEC

ad

00010101

3

2

1

(ad) (ad) – 1

 

 

 

31

 

 

 

 

 

22

Декремент байта в РПД

DEC

 

@Ri

0001011i

1

1

1

 

РПД(Ri) РПД(Ri) – 1

23

Умножение аккумулятора на регистр В

MUL

 

AB

10100100

1

1

4

 

Если (А)×(В) > 255, то

 

 

 

 

 

 

 

 

 

 

 

 

 

(B)(A) (A) ×(B);

 

 

 

 

 

 

 

 

 

 

 

 

 

если (А)×(В) < 255, то

 

 

 

 

 

 

 

 

 

 

 

 

 

(A) (A)×(B)

24

Деление аккумулятора на регистр В

DIV

 

AB

10000100

1

1

4

 

(A) (A)/(B) – целая часть

 

 

 

 

 

 

 

 

 

 

 

 

 

(В) остаток от деления (А)/(В)

 

Таблица 3 – Группа команд логических операций

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Название команды

 

 

Мнемокод

КОП

 

Т

 

Б

 

Ц

Операция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Логическое И аккумулятора и регистра

 

 

ANL A, Rn

01011rrr

 

1

 

1

 

 

1

(A) (A) (Rn)

 

2

Логическое И аккумулятора и прямоадресуемого байта

 

 

ANL A, ad

01010101

 

3

 

2

 

 

1

(A) (A) (ad)

 

3

Логическое И аккумулятора и байта из РПД

 

 

ANL A, @Ri

0101011i

 

1

 

1

 

 

1

(A) (A) РПД(Ri)

 

4

Логическое И аккумулятора и константы

 

 

ANL A, #d

01010100

 

2

 

2

 

 

1

(A) (A) d

 

5

Логическое И прямоадресуемого байта и аккумулятора

 

 

ANL ad, A

01010010

 

3

 

2

 

 

1

(ad) (ad) (A)

 

6

Логическое И прямоадресуемого байта и константы

 

 

ANL ad, #d

01010011

 

7

 

3

 

 

2

(ad) (ad) d

 

7

Логическое ИЛИ аккумулятора и регистра

 

 

ORL A, Rn

01001rrr

 

1

 

1

 

 

1

(A) (A) V (Rn)

 

8

Логическое ИЛИ аккумулятора и прямоадресуемого байта

 

ORL A, ad

01000101

 

3

 

2

 

 

1

(A) (A) V (ad)

 

9

Логическое ИЛИ аккумулятора и байта из РПД

 

 

ORL A, @Ri

0100011i

 

1

 

1

 

 

1

(A) (A) V РПД(Ri)

 

10

Логическое ИЛИ аккумулятора и константы

 

 

ORL A, #d

01000100

 

2

 

2

 

 

1

(A) (A) V d

 

11

Логическое ИЛИ прямоадресуемого байта и аккумулятора

 

ORL ad, A

01000010

 

3

 

2

 

 

1

(ad) (ad) V (A)

 

12

Логическое ИЛИ прямоадресуемого байта и константы

 

 

ORL ad, #d

01000011

 

7

 

3

 

 

2

(ad) (ad) V d

 

13

Исключающее ИЛИ аккумулятора и регистра

 

 

XRL A, Rn

01101rrr

 

1

 

1

 

 

1

(A) (A) (Rn)

 

14

Исключающее ИЛИ аккумулятора и прямоадресуемого байта

 

XRL A, ad

01100101

 

3

 

2

 

 

1

(A) (A) (ad)

 

15

Исключающее ИЛИ аккумулятора и байта РПД

 

 

XRL A, @Ri

0110011i

 

1

 

1

 

 

1

(A) (A) РПД(Ri)

 

16

Исключающее ИЛИ аккумулятора и константы

 

 

XRL A, #D8

01100100

 

2

 

2

 

 

1

(A) (A) d

 

17

Исключающее ИЛИ прямоадресуемого байта и аккумулятора

 

XRL ad, A

01100010

 

3

 

2

 

 

1

(ad) (ad) (A)

 

18

Исключающее ИЛИ прямоадресуемого байта и константы

 

XRL ad, #D8

01100011

 

7

 

3

 

 

2

(ad) (ad) d

 

 

 

 

32

 

 

 

 

 

 

 

 

 

 

 

 

19

Сброс аккумулятора

 

CLR A

 

 

11100100

 

1

1

1

(A) 0

 

 

20

Инверсия аккумулятора

 

CPL A

 

 

11110100

 

1

1

1

 

 

 

 

 

 

 

 

 

(A) ( A )

 

 

21

Сдвиг аккумулятора влево

 

RL

A

 

 

00100011

 

1

1

1

(An+1) (An),

n=0..6,

 

 

циклический

 

 

 

 

 

 

 

 

 

 

 

 

 

(A0) (A7)

 

 

22

Сдвиг аккумулятора влево

 

RLC A

 

 

00110011

 

1

1

1

(An+1) (An),

n=0..6,

 

 

через перенос

 

 

 

 

 

 

 

 

 

 

 

 

 

(A0) (C), (C) (A7)

 

23

Сдвиг аккумулятора вправо

 

RR

A

 

 

00000011

 

1

1

1

(An) (An+1),

n=0..6,

 

 

циклический

 

 

 

 

 

 

 

 

 

 

 

 

 

(A7) (A0)

 

 

24

Сдвиг аккумулятора вправо

 

RRC A

 

 

00010011

 

1

1

1

(An) (An+1),

n=0..6,

 

 

через перенос

 

 

 

 

 

 

 

 

 

 

 

 

 

(A7) (C), (C) (A0)

 

25

Обмен местами тетрад в аккумуляторе

 

SWAP A

 

11000100

 

1

1

1

(A3-0) (A7-4)

 

 

 

Таблица 4 – Группа команд операций с битами

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Название команды

Мнемокод

 

 

 

КОП

Т

 

Б

Ц

 

 

 

Операция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Сброс переноса

CLR C

 

 

11000011

1

 

1

1

 

(C) 0

 

 

2

Сброс бита

CLR bit

 

 

11000010

4

 

2

1

 

(b) 0

 

 

3

Установка переноса

SETB C

 

 

11010011

1

 

1

1

 

(C) 1

 

 

4

Установка бита

SETB bit

 

 

11010010

4

 

2

1

 

(b) 1

 

 

5

Инверсия переноса

CPL C

 

 

10110011

1

 

1

1

 

(C) (¬C)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Инверсия бита

CPL bit

 

 

10110010

4

 

2

1

 

(b) (¬b)

 

 

7

Логическое И переноса и бита

ANL C, bit

 

 

10000010

4

 

2

2

 

(C) (C) (b)

 

 

8

Логическое И переноса и инверсии бита

ANL C,/bit

 

 

10110000

4

 

2

2

 

(C) (C) (¬b)

 

 

9

Логическое ИЛИ переноса и бита

ORL C, bit

 

 

01110010

4

 

2

2

 

(C) (C) V (b)

 

 

10

Логическое ИЛИ переноса и инверсии бита

ORL C,/bit

 

 

10100000

4

 

2

2

 

(C) (C) V (¬b)

 

 

11

Пересылка бита в перенос

MOV C, bit

 

 

10100010

4

 

2

1

 

(C) (b)

 

 

12

Пересылка переноса в бит

MOV bit, C

 

 

10010010

4

 

2

2

 

(b) (C)

 

 

Команды этой группы позволяют выполнять операции над отдельными битами: сброс, установку, инверсию бита (¬), а также логические операции И ( ) и ИЛИ (V). В качестве "логического" аккумулятора, участвующего во всех операциях с двумя операндами,

33

выступает признак переноса С (разряд PSW.7), в качестве операндов могут использоваться 128 бит из резидентной памяти данных и разряды регистров специальных функций, допускающих адресацию отдельных бит.

Таблица 5 – Группа команд передачи управления

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

 

 

 

 

 

 

 

 

1

Длинный переход в полном объеме памяти про-

LJMP ad16

00000010

12

3

2

(PC) ad16

 

грамм

 

 

 

 

 

 

 

2

Абсолютный переход внутри страницы в 2 Кба-

AJMP ad11

a10a9a800001

6

2

2

(PC) (PC) + 2

 

йта

 

 

 

 

 

 

(PC10-0) ad11

3

Короткий относительный переход внутри стра-

SJMP rel

10000000

5

2

2

(PC) (PC) + 2

 

ницы в 256 байт

 

 

 

 

 

 

(PC) (PC) + rel

4

Косвенный переход

JMP @A + DPTR

01110011

1

1

2

(PC) (A) + (DPTR)

5

Переход, если аккумулятор равен нулю

JZ

rel

01100000

5

2

2

(PC) (PC) + 2, если (A) = 0,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

6

Переход, если аккумулятор не равен нулю

JNZ

rel

01110000

5

2

2

(PC) (PC) + 2, если (A) ≠ 0,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

7

Переход, если перенос равен единице

JC

rel

01000000

5

2

2

(PC) (PC) + 2, если (C) = 1,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

8

Переход, если перенос равен нулю

JNC

rel

01010000

5

2

2

(PC) (PC) + 2, если (C) = 0,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

9

Переход, если бит равен единице

JB

bit, rel

00100000

11

3

2

(PC) (PC) + 3, если (b) = 1,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

10

Переход, если бит равен нулю

JNB

bit, rel

00110000

11

3

2

(PC) (PC) + 3, если (b) = 0,

 

 

 

 

 

 

 

 

то (PC) (PC) + rel

11

Переход, если бит установлен, с последующим

JBC

bit, rel

00010000

11

3

2

(PC) (PC) + 3, если (b) = 1,

 

сбросом бита

 

 

 

 

 

 

то (b) 0 и (PC) (PC) + rel

12

Декремент регистра и переход, если не нуль

DJNZ Rn, rel

11011rrr

5

2

2

(PC) (PC) + 2, (Rn) (Rn) -1,

 

 

 

 

 

 

 

 

если (Rn) ≠ 0, то (PC) (PC) + rel

 

 

 

34

 

 

 

 

 

13

Декремент прямоадресуемого байта и переход,

DJNZ ad, rel

11010101

8

3

2

(PC) (PC) + 3, (ad) (ad) -1,

 

если не нуль

 

 

 

 

 

если (ad) ≠ 0, то (PC) (PC) + rel

14

Сравнение аккумулятора с прямоадресуемым

CJNE A, ad, rel

10110101

8

3

2

(PC) (PC) + 3, если (A) ≠ (ad),

 

байтом и переход, если не равно

 

 

 

 

 

то (PC) (PC) + rel, если(A)< (ad),

 

 

 

 

 

 

 

то (С) 1, иначе (C) 0

 

 

 

 

 

 

 

 

15

Сравнение аккумулятора с константой и пере-

CJNE A, #d, rel

10110100

10

3

2

(PC) (PC) + 3, если (A) ≠ d,

 

ход, если не равно

 

 

 

 

 

то (PC) (PC)+ rel, если(A) < d,

 

 

 

 

 

 

 

то (С) 1, иначе (C) 0

16

Сравнение регистра с константой и переход, ес-

CJNE Rn, #d, rel

10111rrr

10

3

2

(PC) (PC) + 3, если (Rn) ≠ d,

 

ли не равно

 

 

 

 

 

то (PC) (PC)+rel, если(Rn)< d,

 

 

 

 

 

 

 

то (С) 1, иначе (C) 0

17

Сравнение байта в РПД с константой и переход,

CJNE @Ri, #d, rel

1011011i

10

3

2

(PC) (PC) + 3, если

 

если не равно

 

 

 

 

 

РПД(Ri) ≠ d, то (PC) (PC) + rel,

 

 

 

 

 

 

 

если РПД(Ri) < d, то (С) 1, иначе

 

 

 

 

 

 

 

(C) 0

18

Длинный вызов подпрограммы

LCALL ad16

00010010

12

3

2

(PC) (PC) +3, (SP) (SP) + 1,

 

 

 

 

 

 

 

РПД(SP) (PC7-0), (SP) (SP)+

 

 

 

 

 

 

 

1, РПД(SP) (PC8-15),

 

 

 

 

 

 

 

(PC) ad16

19

Абсолютный вызов подпрограммы в пределах

ACALL ad11

a10a9a810001

6

2

2

(PC) (PC) +2, (SP) (SP) + 1,

 

страницы в 2 Кбайта

 

 

 

 

 

РПД(SP) (PC7-0), (SP) (SP)+1,

 

 

 

 

 

 

 

РПД(SP) (PC8-15), (PC) ad11

20

Возврат из подпрограммы

RET

00100010

1

1

2

(PC15-8) РПД(SP), (SP) (SP)-1,

 

 

 

 

 

 

 

(PC7-0) РПД(SP), (SP) (SP)-1

21

Возврат из подпрограммы обработки прерыва-

RETI

00110010

1

1

2

(PC15-8) РПД(SP), (SP) (SP)-1,

 

ния

 

 

 

 

 

(PC7-0) РПД(SP), (SP) (SP)-1

22

Холостая команда

NOP

00000000

1

1

1

(PC) (PC) + 1

Примечание. Ассемблер допускает использование обобщенного имени команд JMP и CALL, которые в процессе трансляции заменяются оптимальными по формату командами перехода (AJMP, SJMP, LJMP) или вызова (ACALL, LCALL).

35

Приложение 3. Система команд в алфавитном порядке

Мнемокод

КОП

Мнемокод

КОП

Мнемокод

КОП

ACALL 0xxH

11

ANL A, R4

5C

DJNZ R1, rel

D9

ACALL 1xxH

31

ANL A, R5

5D

DJNZ R2, rel

DA

ACALL 2xxH

51

ANL A, R6

5E

DJNZ R3, rel

DB

ACALL 3xxH

71

ANL A, R7

5F

DJNZ R4, rel

DC

ACALL 4xxH

91

ANL A, @R0

56

DJNZ R5, rel

DD

ACALL 5xxH

B1

ANL A, @R1

57

DJNZ R6, rel

DE

ACALL 6xxH

D1

ANL A, #d

54

DJNZ R7, rel

DF

ACALL 7xxH

F1

ANL ad, A

52

INC A

04

ADD A, ad

25

ANL ad, #d

53

INC ad

05

ADD A, R0

28

ANL C, bit

82

INC DPTR

A3

ADD A, R1

29

ANL C, /bit

B0

INC R0

08

ADD A, R2

2A

CJNE A, ad, rel

B5

INC R1

09

ADD A, R3

2B

CJNE A, #d, rel

B4

INC R2

0A

ADD A, R4

2C

CJNE R0, #d, rel

B8

INC R3

0B

ADD A, R5

2D

CJNE R1, #d, rel

B9

INC R4

0C

ADD A, R6

2E

CJNE R2, #d, rel

BA

INC R5

0D

ADD A, R7

2F

CJNE R3, #d, rel

BB

INC R6

0E

ADD A, @R0

26

CJNE R4, #d, rel

BC

INC R7

0F

ADD A, @R1

27

CJNE R5, #d, rel

BD

INC @R0

06

ADD A, #d

24

CJNE R6, #d, rel

BE

INC @R1

07

ADDC A, ad

35

CJNE R7, #d, rel

BF

JB bit, rel

20

ADDC A, R0

38

CJNE @R0, #d, rel

B6

JBC bit, rel

10

ADDC A, R1

39

CJNE @R1, #d, rel

B7

JC rel

40

ADDC A, R2

3A

CLR A

E4

JMP @A + DPTR

73

ADDC A, R3

3B

CLR bit

C2

JNB bit, rel

30

ADDC A, R4

3C

CLR C

C3

JNC rel

50

ADDC A, R5

3D

CPL A

F4

JNZ rel

70

ADDC A, R6

3E

CPL bit

B2

JZ rel

60

ADDC A, R7

3F

CPL C

B3

LCALL ad16

12

ADDC A, @R0

36

DA A

D4

LJMP ad16

02

ADDC A, @R1

37

DEC A

14

MOV A, ad

E5

ADDC A, #d

34

DEC ad

15

MOV A, R0

E8

AJMP 0XXH

01

DEC R0

18

MOV A, R1

E9

AJMP 1XXH

21

DEC R1

19

MOV A, R2

EA

AJMP 2XXH

41

DEC R2

1A

MOV A, R3

EB

AJMP 3XXH

61

DEC R3

1B

MOV A, R4

EC

AJMP 4XXH

81

DEC R4

1C

MOV A, R5

ED

AJMP 5XXH

A1

DEC R5

1D

MOV A, R6

EE

AJMP 6XXH

C1

DEC R6

1E

MOV A, R7

EF

AJMP 7XXH

E1

DEC R7

1F

MOV A, @R0

E6

ANL A, ad

55

DEC @R0

16

MOV A, @R1

E7

ANL A, R0

58

DEC @R1

17

MOV A, #d

74

ANL A, R1

59

DIV AB

84

MOV ad, A

F5

ANL A, R2

5A

DJNZ ad, rel

D5

MOV ad, R0

88

ANL A, R3

5B

DJNZ R0, rel

D8

MOV ad, R1

89

 

 

 

 

 

 

Мнемокод

КОП

Мнемокод

КОП

Мнемокод

КОП

MOV ad, R2

8A

MOV @R1, A

F7

SUBB A, ad

95

MOV ad, R3

8B

MOV @R1, ad

A7

SUBB A, R0

98

MOV ad, R4

8C

MOV @R1, #d

77

SUBB A, R1

99

MOV ad, R5

8D

MOVC A, @ + DPTR

93

SUBB A, R2

9A

MOV ad, R6

8E

MOVC A, @ + PC

83

SUBB A, R3

9B

MOV ad, R7

8F

MOVX A, @DPTR

E0

SUBB A, R4

9C

MOV ad, @R0

86

MOVX A, @R0

E2

SUBB A, R5

9D

MOV ad, @R1

87

MOVX A, @R1

E3

SUBB A, R6

9E

MOV ad, #d

75

MOVX @DPTR, A

F0

SUBB A, R7

9F

MOV add, ads

85

MOVX @R0, A

F2

SUBB A, @R0

96

MOV bit, C

92

MOVX @R1, A

F3

SUBB A, @R1

97

MOV C, bit

A2

MUL AB

A4

SUBB A, #d

94

MOV DPTR, #16

90

NOP

00

SWAP A

C4

MOV R0, A

F8

ORL A, ad

45

XCH A, ad

C5

MOV R0, ad

A8

ORL A, R0

48

XCH A, R0

C8

MOV R0, #d

78

ORL A, R1

49

XCH A, R1

C9

MOV R1, A

F9

ORL A, R2

4A

XCH A, R2

CA

MOV R1, ad

A9

ORL A, R3

4B

XCH A, R3

CB

MOV R1, #d

79

ORL A, R4

4C

XCH A, R4

CC

MOV R2, A

FA

ORL A, R5

4D

XCH A, R5

CD

MOV R2, ad

AA

ORL A, R6

4E

XCH A, R6

CE

MOV R2, #d

7A

ORL A, R7

4F

XCH A, R7

CF

MOV R3, A

FB

ORL A, @R0

46

XCH A, @R0

C6

MOV R3, ad

AB

ORL A, @R1

47

XCH A, @R1

C7

MOV R3, #d

7B

ORL A, #d

44

XCHD A, @R0

D6

MOV R4, A

FC

ORL ad, A

42

XCHD A, @R1

D7

MOV R4, ad

AC

ORL ad, #d

43

XRL A, ad

65

MOV R4, #d

7C

ORL C, bit

72

XRL A, R0

68

MOV R5, A

FD

ORL C, /bit

A0

XRL A, R1

69

MOV R5, ad

AD

POP ad

D0

XRL A, R2

6A

MOV R5, #d

7D

PUSH ad

C0

XRL A, R3

6B

MOV R6, A

FE

RET

22

XRL A, R4

6C

MOV R6, ad

AE

RETI

32

XRL A, R5

6D

MOV R6, #d

7E

RL A

23

XRL A, R6

6E

MOV R7, A

FF

RLC A

33

XRL A, R7

6F

MOV R7, ad

AF

RR A

03

XRL A, @R0

66

MOV R7, #d

7F

RRC A

13

XRL A, @R1

67

MOV @R0, A

F6

SETB bit

D2

XRL A, #d

64

MOV @R0, ad

A6

SETB C

D3

XRL ad, A

62

MOV @R0, #d

76

SJMP rel

80

XRL ad, #d

63

37