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

МПУЭВС. Лекции. Задания / pdf_ПрилПЦиПУ / Приложение_ М_ ОднокристОМЭВМ

.pdf
Скачиваний:
25
Добавлен:
11.05.2015
Размер:
679.91 Кб
Скачать

LJMP, однако в теле команды указаны лишь 11 младших разрядов адреса.

Поэтому переход осуществляется в пределах страницы размером 2 Кбайт, при этом надо иметь в виду, что сначала содержимое счетчика команд увеличивается на 2 и только потом заменяются 11 разрядов адреса.

В отличие от предыдущих команд, в команде SJMP (S - short - короткий)

указан не абсолютный, а относительный адрес перехода. Величина смещения rel рассматривается как число со знаком, а, следовательно, переход возможен в пределах128...+127 байт относительно адреса команды, следующей за командой SJMP.

Команда косвенного перехода JMP @A+DPTR позволяет вычислять адрес перехода в процессе выполнения самой программы.

Командами условного перехода можно проверять следующие условия:

JZ — аккумулятор содержит нулевое значение;

JNZ — аккумулятор содержит не нулевое значение

JC — бит переноса С установлен;

JNC — бит переноса С не установлен;

JB — прямо адресуемый бит равен 1

JNB — прямо адресуемый бит равен 0;

JBC — прямо адресуемый бит равен 1 и сбрасывается в нулевое значение при выполнении команды.

Все команды условного перехода рассматриваемых микро-ЭВМ содержат короткий относительный адрес, т. е. переход может осуществляться в пределах—128... +127 байт относительно следующей команды.

Команда DJNZ предназначена для организации программных циклов.

Регистр Rn или байт по адресу ad, указанные в теле команды, содержат счетчик повторений цикла, а смещение rel — относительный адрес перехода к началу цикла. При выполнении команды содержимое счетчика уменьшается на 1 и проверяется на 0. Если значение содержимого счетчика не равно 0, то осуществляется переход на начало цикла, в противном случае выполняется следующая команда.

Команда CJNЕ для реализации процедур ожидания внешних событий. В

теле команды указаны "координаты" двух байт и относительный адрес перехода rel. В качестве двух байт могут быть использованы, например,

значения содержимого аккумулятора и прямо адресуемого байта или косвенно адресуемого байта и константы. При выполнении команды значения указанных двух байт сравниваются и в случае, если они не одинаковы, осуществляется переход. Например, команда WAIT: CJNE A, PO, WAIT

будет выполняться до тех пор, пока значения на линиях порта Р0 не совпадут со значениями содержимого аккумулятора.

Действие команд вызова процедур полностью аналогично действию команд безусловного перехода. Единственное отличие состоит в том, что они сохраняют в стеке адрес возврата.

Команда возврата из подпрограммы RET восстанавливает из стека значение содержимого счетчика команд, а команда возврата из процедуры обработки прерывания RETI, кроме того, разрешает прерывание обслуженного уровня. Команды RET и RETI не различают, какой командой -

LCALL или ACALL - была вызвана подпрограмма, так как и в том, и в другом случае в стеке сохраняется полный 16-разрядный адрес возврата.

Большинство Ассемблеров допускают обобщенную мнемонику JMP -

для команд безусловного перехода и CALL - для команд вызова подпрограмм.

Конкретный тип команды определяется Ассемблером, исходя из "длины"

перехода или вызова.

М.20 Список команд ОМЭВМ

Мнемоника Код Ч/ байт Ч/циклов

ACALL ad11

11

2

2

ACALL ad11

31

2

2

ACALL ad11

51

2

2

ACALL ad11

71

2

2

ACALL ad11

91

2

2

ACALL ad11

Bl

2

2

ACALL ad11

Dl

2

2

ACALL ad11

Fl

2

2

ADD A,@R0

26

1

1

ADD A,@R1

27

1

1

ADD A, ad

25

2

1

ADD A,R0

28

1

1

ADD A,R1

29

1

1

ADD A,R2

2A

1

1

ADD A,R3

2B

1

1

ADD A,R4

2C

1

1

ADD A,R5

2D

1

1

ADD A,R6

2E

1

1

ADD A,R7

2F

1

1

ADDC A,#d

34

2

1

ADDC A,@R0

36

1

1

ADDC A,@R1

37

1

1

ADDC A,ad

35

2

1

ADDC A,R0

38

1

1

ADDC A,R1

39

1

1

ADDC A,R2

3A

1

1

ADDC A,R3

3B

1

1

ADDC A,R4

3C

1

1

ADDC A,R5

3D

1

1

ADDC A,R6

3E

1

1

ADDC A,R7

3F

1

1

AJMP ad11

01

2

2

AJMP ad11

21

2

2

AJMP ad11

41

2

2

AJMP ad11

61

2

2

AJMP ad11

81

2

2

AJMP ad11

A1

2

2

AJMP ad11

Cl

2

2

AJMP ad11

El

2

2

ANL A,#d

54

2

1

ANL A,@R0

56

1

1

ANL A,@R1

57

1

1

ANL A,ad

55

2

1

ANL A,R0

58

1

1

ANL A,R1

59

1

1

ANL A,R2

5A

1

1

ANL A,R3

5B

1

1

ANL A,R4

5C

1

1

ANL A,R5

5D

1

1

ANL A,R6

5E

1

1

ANL A,R7

5F

1

1

ANL C,/bit

B0

2

2

ANL C,bit

82

2

2

ANL ad,#d

53

3

2

ANL ad,A

52

2

1

CJNE @Rl,#d,rel B7

3

2

CJNE ©R0,#d, rel B6

3

2

CJNE A,#d, rel

B4

3

2

CJNE A,ad, rel

B5

3

2

CJNE R0,#d, rel

B8

3

2

CJNE R2,#d, rel

BA

3

2

CJNE R3,#d, rel

BB

3

2

CJNE R4,#d, rel

BC

3

2

CJNE R5,#d, rel

BD

3

2

CJNE R6,#d, rel

BE

3

2

CJNE R7,#d, rel

BF

3

2

CJNE Rl, #d, rel

B9

3

2

CLR A

E4

1

1

CLR bit

C2

2

1

CLR C

C3

1

1

CPL A

F4

1

1

CPL bit

B2

2

1

CPL C

B3

1

1

DA A

D4

1

1

DEC @R0

16

1

1

DEC ©Rl

17

1

1

DEC A

14

1

1

DEC ad

15

2

1

DEC R0

18

1

1

DEC R2

1A

1

1

DEC R3

1B

1

1

DEC R4

1C

1

1

DEC R5

ID

1

1

DEC R6

1E

1

1

DEC R7

IF

1

1

DEC Rl

19

1

1

DIV AB

84

1

4

DJNZ R2,rel

DA

2

2

DJNZ R4,rel

DC

2

2

DJNZ ad,rel

D5

3

2

DJNZ R0,rel

D8

2

2

DJNZ R3,rel

DB

2

2

DJNZ R5,rel

DD

2

2

DJNZ R6,rel

DE

2

2

DJNZ R7,rel

DF

2

2

DJNZ Rl,rel

D9

2

2

INC @R0

06

1

1

INC @R1

07

1

1

INC A

04

1

1

INC ad

05

2

1

INC DPTR

A3

1

2

INC R0

08

1

1

INC Rl

09

1

1

INC R2

0A

1

1

INC R3

0B

1

1

INC R4

0C

1

1

INC R5

0D

1

1

INC R6

0E

1

1

INC R7

0F

1

1

JB bit,rel

20

3

2

JBC bit,ad16

10

3

2

JC ad16

40

2

2

JMP @A+DPTR

73

1

2

JNB bit,ad16

30

3

2

JNC ad16

50

2

2

JNZ ad16

70

2

2

JZ ad16

60

2

2

LCALL ad16

12

3

2

LJMP ad16

02

3

2

MOV @R0,#d

76

2

1

MOV @R0,A

F6

1

1

MOV @R0,ad

A6

2

2

MOV @R1,ad

A7

2

2

MOV @RI,A

F7

1

1

MOV @Rl,#d

77

2

1

MOV A,#d

74

2

1

MOV A,@R0

E6

1

1

MOV A,@R1

E7

1

1

MOV A,ad

E5

2

1

MOV A,R0

E8

1

1

MOV A,R2

EA

1

1

MOV A,R3

EB

1

1

MOV A,R4

EC

1

1

MOV A,R5

ED

1

1

MOV A,R6

EE

1

1

MOV A,R7

EF

1

1

MOV A.R1

E9

1

1

MOV bit,C

92

2

2

MOV C,bit

A2

2

1

MOV ad,#d

75

3

2

MOV ad,@R0

86

2

2

MOV ad,@R1

87

2

2

MOV ad,A

F5

2

1

MOV add,ads

85

3

2

MOV ad,R0

88

2

2

MOV ad,R2

8A

2

2

MOV ad,R3

8B

2

2

MOV ad,R4

8C

2

2

MOV ad,R5

8D

2

2

MOV ad,R6

8E

2

2

MOV ad,R7

8F

2

2

MOV ad,Rl

89

2

2

MOV DPTR,#d

90

3

2

MOV R0,#d

78

2

1

MOV R0,A

F8

1

1

MOV R0,ad

A8

2

2

MOV R1,A

F9

1

1

MOV R2,#d

7A

2

1

MOV R2,A

FA

1

1

MOV R2,ad

AA

2

2

MOV R3,#d

7B

2

1

MOV R3,A

FB

1

1

MOV R3,ad

AB

2

2

MOV R4,#d `

7C

2

1

MOV R4,A

FC

1

1

MOV R4,ad

AC

2

2

MOV R5,#d

7D

2

1

MOV R5,A

FD

1

1

MOV R5,ad

AD

2

2

MOV R6,#d

7E

2

1

MOV R6,A

FE

1

1

MOV R6,ad

AE

2

2

MOV R7,#d

7F

2

1

MOV R7,A

FF

1

1

MOV R7,ad

AF

2

2

MOV Rl,#d

79

2

1

MOV Rl,ad

A9

2

2

MOVC A,@A+DPTR 931

2

MOVC A,@A+PC

831

2

MOVX @DPTR,A

F01

2

MOVX @R0,A F2

1

2

MOVX @R1,A F3

1

2

MOVX A,@DPTR E0 1

2

MOV A,@R0

E2 1

2

MOVX A,@R1 E3

1

2

MUL AB

A4

1

4

NOP

00

1

1

ORL A,#d

44

2

1

ORL A,@R0

46

1

1

ORL A,@R1

47

1

1

ORL A,ad

45

2

1

ORL A,R0

48

1

1

ORL A,R2

4A

1

1

ORL A,R3

4B

1

1

ORL A,R4

4C

1

1

ORL A,R5

4D

1

1

ORL A,R6

4E

1

1

ORL A,R7

4P

1

1

ORL A,Rl

49

1

1

ORL C,/bit

A0

2

2

ORL C,bit

72

2

2

ORL ad,#d

43

3

2

ORL ad,A

42

2

1

POP ad

D0

2

2

PUSH ad

C0

2

2

RET

22

1

2

RETI

32

1

2

RL A

23

1

1

RLC A

33

1

1

RR A

03

1

1

RRC A

13

1

1

SETB bit

D2

2

1

SETB C

D3

1

1

SJMP rel

80

2

2

SUBB A,#d

94

2

1

SUBB A,@R0

96

1

1

SUBB A,@R1

97

1

1

SUBB A,ad

95

2

1

SUBB A,R0

98

1

1

SUBB A,R1

99

1

1

SUBB A,R2

9A

1

1

SUBB A,R3

9B

1

1

SUBB A,R4

9C

1

1

SUBB A,R5

9D

1

1

SUBB A,R6

9E

1

1

SUBB A,R7

9F

1

1

SWAP A

C4

1

1

XCH A,@R0

C6

1

1

XCH A,@R1

C7

1

1

XCH A,ad

C5

2

1

XCH A,R0

C8

1

1

XCH A,R1

C9

1

1

XCH A,R2

CA

1

1

XCH A,R3

CB

1

1

XCH A,R4

CC

1

1

XCH A,R5

CD

1

1

XCH A,R6

CE

1

1

XCH A,R7

CF

1

1

XCHD A,@R0

D6

1

1

XCHD A,@R1

D7

1

1

XRL A,#d

64

2

1

XRL A,@R0

66

1

1

XRL A,@R1

67

1

1

XRL A,ad

65

2

1

XRL A,R0

68

1

1

XRL A,R1

69

1

1

XRL A,R2

6A

1

1

XRL A,R3

6B

1

1

XRL A,R4

6C

1

1

XRL A,R5

6D

1

1

XRL A,R6

6E

1

1

XRL A,R7

6F

1

1

XRL ad,#d

63

3

2

XRL ad,A

62

2

1

М.21 Таблица кодировки команд ОМЭВМ

Младшая тетрада кода