Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выч. машины, системы и сети. Пособие. 80С51 v0.26.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.52 Mб
Скачать

7. Текст программы.

Строки программы должны быть пронумерованы. Для лучшего понимания все операторы, модули и программу в целом необходимо комментировать. Целесообразно комментарии структурировать. В тексте программы должны быть трёхуровневые комментарии:

- в шапке программного модуля должно быть указано назначение этого модуля, местонахождение входных данных и указание на место размещения результата выполнения этого программного модуля;

- следующий уровень – комментарии к фрагментам программы. Например, «Сортировка массива по убыванию»;

- построчные комментарии, в них должно быть указано назначение команды или инструкции, а не действие, выполняемое этой инструкцией. Чтобы комментарии легко выделялись и читались, они должны быть записаны разными шрифтами.

8. Перечень выявленных в примерах ошибок

9. Выводы.

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

Приложение П3 Коды машинных команд

Мнемоническое обозначение машинной команды

Код ком.

K-bo байт

Мнемоническое обозначение машинной команды

Код ком.

К-во байт

Мнемоническое обозначение машинной команды

Код ком.

К-во байт

ACALL 000H-0FFH

11

2

ANL A, R3

5B

1

DEC @R1

17

1

ACALL 100H-1FFH

31

2

ANL A, R4

5C

1

DIV AB

84

1

ACALL 200H-2FFH

51

2

ANL A, R5

5D

1

DJNZ R0, rel

D8

2

ACALL 300H-3FFH

71

2

ANL A, R6

5E

1

DJNZ R1, rel

D9

2

ACALL 400H-4FFH

91

2

ANL A, R7

5F

1

DJNZ R2, rel

DA

2

ACALL 500H-5FFH

В1

2

ANL A, #data

54

2

DJNZ R3, rel

DB

2

ACALL 600H-6FFH

D1

2

ANL A, direct

55

2

DJNZ R4, rel

DC

2

ACALL 700H-7FFH

F1

2

ANL A, @R0

56

1

DJNZ R5, rel

DD

2

ADD A, R0

28

1

ANL A, @R1

57

1

DJNZ R6, rel

DE

2

ADD A, R1

29

1

ANL direct, A

52

2

DJNZ R7, rel

DF

2

ADD A, R2

2A

1

ANL direct, #data

53

3

DJNZ direct, rel

D5

3

ADD A, R3

2B

1

ANL C, bit

82

2

INC A

04

1

ADD A, R4

2C

1

ANL C, /bit

В0

2

INC direct

05

2

ADD A, R5

2D

1

CJNE A, #data, rel

B4

3

INC DPTR

A3

1

ADD A, R6

2E

l

CJNE A, direct, rel

В5

3

INC R0

08

1

ADD A, R7

2F

1

CJNE R0, #data, rel

В8

3

INC R1

09

1

ADD A, #data

24

2

CJNE R1, #data, rel

В9

3

INC R2

0A

1

ADD A, direct

25

2

CJNE R2, #data, rel

ВА

3

INC R3

0B

1

ADD A, @R0

26

1

CJNE R3, #data, rel

ВВ

3

INC R4

1

ADD A, @R1

27

1

CJNE R4, #data, rel

ВС

3

INC R5

0D

1

ADDC A, R0

38

1

CJNE R5, #data, rel

BD

3

INC R6

0E

1

ADDC A, R1

39

1

CJNE R6, #data, rel

BE

3

INC R7

0F

1

ADDC A, R2

ЗА

1

CJNE R7, #data, rel

BF

3

INC @R0

06

1

ADDC A, R3

3B

1

CJNE @R0 ,#data, rel

В6

3

INC @R1

07

1

ADDC A,R4

3C

1

CJNE @R1, # data, rel

В7

3

JB bit, rel

20

3

ADDC A, R5

3D

1

CLR A

Е4

1

JBC bit, rel

10

3

ADDC A, R6

3E

1

CLR bit

С2

2

JC rel

40

2

ADDC A, R7

3F

1

CLR С

C3

1

JMP @A+DPTR

73

1

ADDC A, #data

34

2

CPL A

F4

1

JNB bit, rel

30

3

ADDC A, direct

35

2

CPL bit

В2

2

JNC rel

50

2

ADDC A, @R0

36

1

CPL С

ВЗ

1

JNZ rel

70

2

ADDC A, @R1

37

1

DA A

D4

1

JZ rel

60

2

AJMP 000H-0FFH

01

2

DEC A

14

1

LCALL addr l6

12

3

AJMP 100H-1FFH

21

2

DEC direct

15

2

LJMP addr l6

02

3

AJMP 200H-2FFH

41

2

DEC R0

18

1

MOV A, R0

E8

1

AJMP 300H-3FFH

61

2

DEC R1

19

1

MOV A, Rl

E9

1

AJMP 400H-4FFH

81

2

DEC R2

1

MOV A, R2

EA

1

AJMP 500H-5FFH

Al

2

DEC R3

1

MOV A, R3

EB

1

AJMP 600H-6FFH

C1

2

DEC R4

1

MOV A, R4

EC

1

AJMP 700H-7FFH

El

2

DEC R5

1D

1

MOV A, R5

ED

1

ANL A, R0

58

1

DEC R6

1E

1

MOV A, R6

ЕЕ

1

ANL A, R1

59

1

DEC R7

1F

1

MOV A, R7

EF

1

ANL A, R2

5A

1

DEC @R0

16

1

MOV A, #data

74

2

Мнемоническое обозначение машинной команды

Код ком.

К-во байт

Мнемоническое обозначение машинной команды

Код ком.

К-во байт

Мнемоническое обозначение машинной команды

Код ком.

К-во байт

MOV A, direct

E5

2

MOV R3, direct

AB

2

SETB С

D3

1

MOV A, @R0

E6

1

MOV R4, direct

AC

2

SJMP rel

80

2

MOV A, @R1

E7

1

MOV R5, direct

AD

2

SUBB A, R0

98

1

MOV bit, С

92

2

MOV R6, direct

AE

2

SUBB A, R1

99

1

MOV C, bit

A2

2

MOV R7, direct

AF

2

SUBB A, R2

9A

1

MOV direct, A

F5

2

MOV @R0, direct

A6

2

SUBB A, R3

9B

1

MOV direct, #data

75

3

MOV @R1, direct

A7

2

SUBB A, R4

9C

1

MOV direct, direct

85

3

MOVC A, @A+DPTR

93

1

SUBB A, R5

9D

1

MOV direct, R0

88

2

MOVC A, @A+PC

83

1

SUBB A, R6

9E

1

MOV direct, R1

89

2

MOVX A, @DPTR

E0

1

SUBB A, R7

9F

1

MOV direct, R2

8A

2

MOVX A, @R0

E2

1

SUBB A, #data

94

2

MOV direct, R3

8B

2

MOVX A, @R1

E3

1

SUBB A, direct

95

2

MOV direct, R4

8C

2

MOVX @DPTR, A

F0

1

SUBB A, @R0

96

1

MOV direct, R5

8D

2

MOVX @R0, A

F2

1

SUBB A, @R1

97

1

MOV direct, R6

8E

2

MOVX @R1, A

F3

1

SWAP A

C4

1

MOV direct, R7

8F

2

MUL AB

A4

1

XCH A, R0

C8

1

MOV direct, @R0

86

2

NOP

00

1

XCH A, R1

C9

1

MOV direct, @R1

87

2

ORL A, R0

48

1

XCH A, R2

CA

1

MOV DPTR, #data l6

90

3

ORL A, R1

49

1

XCH A, R3

CB

1

MOV R0, A

F8

1

ORL A, R2

4A

1

XCH A, R4

CC

1

MOV R1, A

F9

1

ORL A, R3

4B

1

XCH A, R5

CD

1

MOV R2, A

FA

1

ORL A, R4

4C

1

XCH A, R6

CE

1

MOV R3, A

FB

1

ORL A, R5

4D

1

XCH A, R7

CF

1

MOV R4, A

FC

1

ORL A, R6

4E

1

XCH A, direct

C5

2

MOV R5, A

FD

1

ORL A, R7

4F

1

XCH A, @R0

C6

1

MOV R6, A

FE

1

ORL A, #data

44

2

XCH A, @R1

C7

1

MOV R7, A

FF

1

ORL A, direct

45

2

XCHD A, @R0

D6

1

MOV @R0, A

F6

1

ORL A, @R0

46

1

XCHD А, @R1

D7

1

MOV @R1, A

F7

1

ORL A, @R1

47

1

XRL A, R0

68

1

MOV R0, #data

78

2

ORL C, bit

72

2

XRL A, R1

69

1

MOV R1, #data

79

2

ORL C, /bit

А0

2

XRL A, R2

6A

1

MOV R2, #data

7A

2

2

ORL direct, A

42

2

XRL A, R3

6B

1

MOV R3, #data

7B

ORL direct, #data

43

3

XRL A, R4

6C

1

MOV R4, #data

7C

2

POP direct

D0

2

XRL A, R5

6D

1

MOV R5, #data

7D

2

PUSH direct

C0

2

XRL A, R6

6E

1

MOV R6, #data

7E

2

RET

22

1

XRL A, R7

6F

1

MOV R7, #data

7F

2

RETI

32

2

XRL A, #data

64

2

MOV @R0, #data

76

2

RL A

23

1

XRL A, direct

65

2

MOV @R1, #data

77

2

RLC A

33

l

XRL A, @R0

66

1

MOV R0, direct

A8

2

RR A

03

1

XRL A, @R1

67

1

MOV R1, direct

A9

2

RRC A

13

l

XRL direct, A

62

2

MOV R2, direct

AA

2

SETB bit

D2

2

XRL direct, #data

63

3

Код ком.

Мнемоническое обозначение машинной команды

К-во байт

1

Мнемоническое обозначение машинной команды

К-во байт

Код ком.

Мнемоническое обозначение машинной команды

К-во байт

00

NOP

1

2A

ADD A, R2

1

54

ANL A, #data

2

01

AJMP 000H-0FFH

2

2B

ADD A, R3

1

55

ANL A, direct

2

02

LJMP addrl6

3

2C

ADD A, R4

1

56

ANL A, @R0

1

03

RR A

1

2D

ADD A, R5

1

57

ANL A, @R1

1

04

INC A

1

2E

ADD A, R6

1

58

ANL A, R0

1

05

INC direct

2

2F

ADD A, R7

1

59

ANL A, Rl

1

06

INC @R0

1

30

JNB bit, rel

3

5A

ANL A, R2

1

07

INC @R1

1

31

ACALL 100H-1FFH

2

5B

ANL A, R3

1

08

INC R0

1

32

RETI

2

ANL A, R4

1

09

INC R1

1

33

RLC A

1

5D

ANL A, R5

1

INC R2

1

34

ADDC A, #data

2

ANL A, R6

1

INC R3

1

35

ADDC A, direct

2

5F

ANL A, R7

1

INC R4

1

36

ADDC A, @R0

1

60

JZ rel

2

0D

INC R5

1

37

ADDC A, @R1

1

61

AJMP 300H-3FFH

2

INC R6

1

38

ADDC A, R0

1

62

XRL direct, A

2

0F

INC R7

1

39

ADDC A, R1

1

63

XRL direct, #data

3

10

JBC bit, rel

3

ЗА

ADDC A, R2

1

64

XRL A, #data

2

11

ACALL 000H-0FFH

2

3B

ADDC A, R3

1

65

XRL A, direct

2

12

LCALL addrl6

3

3C

ADDC A, R4

1

66

XRL A, @R0

1

13

RRC A

1

3D

ADDC A, R5

1

67

XRL A,@R1

1

14

DEC A

1

3E

ADDC A, R6

1

68

XRL A, R0

1

15

DEC direct

2

3F

ADDC A, R7

1

69

XRL A, R1

1

16

DEC @R0

1

40

JC rel

2

XRL A, R2

1

17

DEC @R1

1

41

AJMP 200H-2FFH

2

XRL A, R3

1

18

DEC R0

1

42

ORL direct, A

2

XRL A, R4

1

19

DEC R1

1

43

ORL direct, #data

3

6D

XRL A, R5

1

DEC R2

1

44

ORL A, #data

2

XRL A, R6

1

1B

DEC R3

1

45

ORL A, direct

2

6F

XRL A, R7

1

DEC R4

1

46

ORL A, @R0

1

70

JNZ rel

2

1D

DEC R5

1

47

ORL A, @R1

1

71

ACALL 300H-3FFH

2

1E

DEC R6

1

48

ORL A, R0

1

72

ORL C, bit

2

1F

DEC R7

1

49

ORL A, Rl

1

73

JMP @A+DPTR

1

20

JB bit, rel

3

4A

ORL A, R2

1

74

MOV A, #data

2

21

AJMP 100H-1FFH

2

4B

ORL A, R3

1

75

MOV direct, #data

3

22

RET

1

4C

ORL A, R4

1

76

MOV @R0, #data

2

23

RL A

1

4D

ORL A, R5

1

77

MOV @R1, #data

2

24

ADD A, #data

2

4E

ORL A, R6

1

78

MOV R0, #data

2

25

ADD A, direct

2

4F

ORL A, R7

1

79

MOV R1, #data

2

26

ADD A, @R0

1

50

JNC rel

2

MOV R2, #data

2

27

ADD A, @R1

1

51

ACALL 200H-2FFH

2

MOV R3, #data

2

28

ADD A, R0

1

52

ANL direct, A

2

MOV R4, #data

2

29

ADD A, R1

1

53

ANL direct, #data

.3

7D

MOV R5, #data

2

Код ком.

Мнемоническое обозначение машинной команды

К-во байт

Код ком.

Мнемоническое обозначение машинной команды

К-во байт

Код ком.

Мнемоническое обозначение машинной команды

К-во байт

MOV R6, #data

2

A9

MOV R1, direct

2

D4

DA A

1

7F

MOV R7, #data

2

AA

MOV R2, direct

2

D5

DJNZ direct, rel

3

80

SJMP rel

2

AB

MOV R3, direct

2

D6

XCHD A, @R0

1

81

AJMP 400H-4FFH

2

AC

MOV R4, direct

2

D7

XCHD A, @R1

1

82

ANL C, bit

2

AD

MOV R5, direct

2

D8

DJNZ R0, rel

2

83

MOVC A, @A+PC

1

AE

MOV R6, direct

2

D9

DJNZ Rl, rel

2

84

DIV AB

1

AF

MOV R7, direct

2

DA

DJNZ R2, rel

2

85

MOV direct, direct

3

B0

ANL C, /bit

2

DB

DJNZ R3, rel

2

86

MOV direct, @R0

2

B1

ACALL 500H-5FFH

2

DC

DJNZ R4, rel

2

87

MOV direct, @Rl

2

B2

CPL bit

2

DD

DJNZ R5, rel

2

88

MOV direct, R0

2

B3

CPL С

1

DE

DJNZ R6, rel

2

89

MOV direct, Rl

2

B4

CJNE A, #data, rel

3

DF

DJNZ R7, rel

2

MOV direct, R2

2

B5

CJNE A, direct, rel

3

E0

MOVX A, @DPTR

1

8B

MOV direct, R3

2

B6

CJNE @R0, #data, rel

3

El

AJMP 700H-7FFH

2

MOV direct, R4

2

B7

CJNE @R1, #data rel

3

E2

MOVX A, @R0

1

8D

MOV direct, R5

2

B8

CJNE R0, #data, rel

3

E3

MOVX A, @R1

1

MOV direct, R6

2

B9

CJNE R1, #data, rel

3

E4

CLR A

1

8F

MOV direct ,R7

2

BA

CJNE R2, #data, rel

3

E5

MOV A, direct

2

90

MOV DPTR, #datal6

3

BB

CJNE R3, #data, rel

3

E6

MOV A, @R0

1

91

ACALL 400H-4FFH

2

ВС

CJNE R4, #data, rel

3

E7

MOV A, @R1

1

92

MOV bit, С

2

BD

CJNE R5, #data, rel

3

E8

MOV A,R0

1

93

MOVC A, @A+DPTR

1

BE

CJNE R6, #data, rel

3

E9

MOV A, R1

1

94

SUBB A, #data

2

BF

CJNE R7, #data, rel

3

EA

MOV A, R2

1

95

SUBB A, direct

2

C0

PUSH direct

2

EB

MOV A, R3

1

96

SUBB A, @R0

1

C1

AJMP 600H-6FFH

2

EC

MOV A, R4

1

97

SUBB A, @R1

1

C2

CLR bit

2

ED

MOV A, R5

1

98

SUBB A, R0

1

C3

CLR С

1

ЕЕ

MOV A, R6

1

99

SUBB A,R1

1

C4

SWAP A

1

EF

MOV A, R7

1

SUBB A, R2

1

C5

XCH A, direct

2

F0

MOVX @DPTR, A

1

SUBB A, R3

1

C6

XCH A, @R0

1

F1

ACALL 700H-7FFH

2

SUBB A, R4

1

C7

XCH A, @R1

1

F2

MOVX @R0, A

1

9D

SUBB A, R5

1

C8

XCH A, R0

1

F3

MOVX @R1, A

1

SUBB A, R6

1

C9

XCH A, R1

1

F4

CPL A

1

9F

SUBB A, R7

1

CA

XCH A, R2

1

F5

MOV direct, A

2

А0

ORL C, /bit

2

CB

XCH A, R3

1

F6

MOV @R0, A

1

А1

AJMP 500H-5FFH

2

CC

XCH A, R4

1

F7

MOV @R1, A

1

А2

MOV C, bit

2

CD

XCH A, R5

1

F8

MOV R0, A

1

A3

INC DPTR

1

CE

XCH A, R6

1

F9

MOV R1, A

1

А4

MUL AB

1

CF

XCH A, R7

1

FA

MOV R2, A

1

А5

D0

POP direct

2

FB

MOV R3, A

1

А6

MOV @R0, direct

2

Dl

ACALL 600H-6FFH

2

FC

MOV R4, A

1

А7

MOV @R1, direct

2

D2

SETB bit

2

FD

MOV R5, A

1

А8

MOV R0, direct

2

D3

SETB С

1

FE

MOV R6, A

1

FF

MOV R7, A

1