Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek2_01_.doc
Скачиваний:
37
Добавлен:
01.12.2018
Размер:
1.34 Mб
Скачать

Кросс-системы для разработки и отладки ппо

Для подготовки текстов, получения объектных кодов и отладки ППО требуются средства автоматизации разработки программ в виде кросс-систем для универсальных мини- и микроЭВМ.

В минимальный состав ПО кросс-систем входят:

  • редактор текстов;

  • программа-транслятор, обеспечивающая преобразование исходного текста ППО в объектный модуль (ASM48, ASM51);

  • редактор внешних связей (LINK), позволяющий включать в программу модули, разработанные независимо друг от друга;

  • программу, обеспечивающую настройку перемещаемых программных модулей на абсолютные адреса (LOCATE);

  • отладчики, интерпретирующие выполнение программ в различных режимах: трассировки, пофрагментного выполнения команд и т.д. и ряд других модулей в зависимости от типа МК или контроллера.

Отладка ППО представляет собой отдельную сложную задачу, которая не поддается формализации и требует высокого профессионализма разработчика.

Отладка также выполняется в несколько этапов:

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

  • комплексная отладка в статическом режиме, где проверяется правильность алгоритма управления (по последовательности формирования управляющих воздействий);

  • комплексная отладка в динамическом режиме без подключения объекта для определения реального времени выполнения ППО и его отдельных фрагментов.

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

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

Наиболее мощные средства отладки позволяют моделировать и среду обитания МК, т.е. различные объекты управления и датчики, подключаемые к нему и другие устройства (через библиотеку моделей объектов и устройств сопряжения с МК). Главным недостатком кросс-систем является невозможность прогона программ в реальном времени МК и комплексной проверки АС и ППО. Эта проблема частично разрешима с помощью отладочных комплексов на основе микроЭВМ, построенной на однотипном процессоре и модулей ВСЭ.

Таблица А.1 - Команды внутренних пересылок и арифметико-логических преобразований

Мнемоника

Выполняемые

п/п

команды

Комментарии

преобразования

Команды пересылки

1

MOV A,Rn

Пересылка регистра в аккумулятор

AC:= (Rn); Rn=0-7

2

MOV A,@Rn

Пересылка байта из РПД в аккумулятор

AC:= [(Rn)]; Rn=0-1

3

MOV A,#dan

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

AC:= dan

4

MOV Rn,A

Пересылка АС в регистр

(Rn):=AC; Rn=0-7

5

MOV Rn,#dan

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

(Rn):= dan; Rn=0-7

6

MOV @Rn,A

Пересылка АС в РПД

[(Rn)]:= AC; Rn=0-1

7

MOV @Rn,#dan

Пересылка непосредственных данных в РПД

[(Rn)]:= dan; Rn=0-1

8

MOV A,PSW

Пересылка PSW в АС

AC:=PSW

9

MOV PSW,AC

Пересылка АС в PSW

PSW:= AC

10

MOV A,T

Пересылка таймера/счетчика в АС

AC:=T

11

MOV T,A

Пересылка АС в таймер/счетчик

T:=AC

12

XCH A,Rn

Обмен регистра с АС

AC:=(Rn); (Rn):=AC;

Rn=0-7

13

XCH A,@Rn

Обмен АС с РПД

AC:= [(Rn)]; [(Rn)]:= AC;

Rn=0-1

14

XCHD A,@Rn

Обмен младших тетрад АС и байта РПД

AC[3-0]:= [(Rn)][3-0]; [(Rn)][3-0]:= AC[3-0];

Rn=0-1

81

MOVP A,@A

Пересылка байта из текущей страницы памяти программ в аккумулятор

PC[7-0]:= AC;

AC:=((РС[11-0]));

82

MOVР3 A,@А

Пересылка байта из третьей страницы памяти программ в аккумулятор

PC[11-8]:= 0011;

PC[7-0]:= AC;

AC:=((РС[11-0]));

Команды пересылки с портами

83

MOVX A,@Rn

Пересылка байта из ВПД в АС

AC:=ВПД[(Rn)]; Rn=0-1

84

MOVX @Rn,A

Пересылка АС во ВПД

ВПД[(Rn)]:= AC; Rn=0-1

92

MOVD A,Pp

Ввод тетрады из порта Рр схемы расширителя ВР43 (р=4-7)

RgCOP:=Pp.00;

AC[3-0]:=(Pp); AC[7-4]:=0

93

MOVD Pp,A

Вывод тетрады в порт Рр схемы расширителя ВР43 (р=4-7)

RgCOP:=Pp.11

RgPp:=AC; Pp:= RgPp

85

OUTL BUS,A

Пересылка АС в порт BUS

RgBUS:=AC; BUS:=RgBUS;

88

INS A,BUS

Стробируемый ввод данных из порта BUS

AC:=BUS

89

OUTL Pp,A

Пересылка АС в порт Рp (р=1,2)

RgPp:=AC; Pp:=RgPp;

92

IN A,Pp

Пересылка данных из порта Рр в АС

AC:=RgPp & Pp

Арифметические команды

15

ADD A,Rn

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

AC:= (Rn) + AC; Rn=0-7

16

ADD A,@Rn

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

AC:= [(Rn)] + AC;

Rn=0-1

17

ADD A,#dan

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

AC:= dan + AC

18

ADDC A,Rn

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

AC:= (Rn) + AC + C;

Rn=0-7

19

ADDC A,@Rn

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

AC:= [(Rn)] + AC + C;

Rn=0-1

20

ADDC A,#dan

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

AC:= dan + AC + C

30

DA A

Десятичная коррекция АС

Если PSW[CA]=1 или AC[3-0] > 9, то

AC[3-0]:=AC[3-0]+6; иначе, если PSW[CY]=1 или AC[7-4] >9 то

AC[7-4]:=AC[7-4] + 6;

31

INC A

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

AC:=AC + 1

32

INC Rn

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

(Rn):=(Rn) + 1; Rn=0-7

33

INC @Rn

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

[(Rn)]:=[(Rn)] +1; Rn=0-7

34

DEC A

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

AC:=AC - 1

35

DEC Rn

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

(Rn):=(Rn) - 1; Rn=0-7

Логические команды

21

ANL A,Rn

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

AC:= (Rn) & AC; Rn=0-7

22

ANL A,@Rn

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

AC:= [(Rn)] & AC;

Rn=0-1

23

ANL A,#dan

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

AC:= dan & AC

24

ORL A,Rn

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

AC:= (Rn) V AC; Rn=0-7

25

ORL A,@Rn

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

AC:= [(Rn)] V AC;

Rn=0-1

26

ORL A,#dan

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

AC:= dan V AC

27

XRL A,Rn

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

AC:= (Rn)  AC; Rn=0-7

28

XRL A,@Rn

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

AC:= [(Rn)]  AC;

Rn=0-1

29

XRL A,#dan

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

AC:= dan  AC

36

CLR A

Очистка аккумулятора

AC:=0

37

CPL A

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

AC:=~AC

38

SWAP A

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

AC[7-4]:= AC[3-0];

AC[3-0]:= AC[7-4];

39

RL A

Циклический сдвиг влево аккумулятора

AC:= L1(AC);

AC[0]:= AC[7]

40

RLC A

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

AC:= L1(AC);

AC[0]:= C; C:= AC[7]

41

RR A

Циклический сдвиг вправо аккумулятора

AC:= R1(AC);

AC[7]:= AC[0]

42

RRC A

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

AC:= R1(AC);

AC[7]:= C; C:= AC[0]

Логические команды с портами

94

ANLD Pp,A

Логическое И аккумулятора и порта Рр (р=4-7)

RgCOP:=Pp.01

RgPp:=AC & RgPp;

Pp:= RgPp

95

ORLD Pp,A

Логическое ИЛИ аккумулятора и порта Рр (р=4-7)

RgCOP:=Pp.10

RgPp:=AC V RgPp;

Pp:= RgPp

86

ANL BUS,#d

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

RgBUS:=RgBUS & dan; BUS:=RgBUS

87

ORL BUS,#d

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

RgBUS:=RgBUS V dan; BUS:=RgBUS;

90

ANL Pp,#d

Логическое И константы и порта Рр (р=1,2)

RgPp:=RgPp & dan; Pp:=RgPp;

91

ORL Pp,#d

Логическое ИЛИ константы и порта Рр (р=1,2)

RgPp:=RgPp V dan; Pp:=RgPp;

Таблица А2 - Команды управления режимами работы МК48 и работы с флагами

Мнемоника

Выполняемые

п/п

команды

Комментарии

преобразования

43

STRT T

Запуск таймера

T:= T + ALE:32

44

STRT CNT

Запуск счетчика

T:= T + T0

45

STOP TCNT

Останов таймера/счетчика

T:= T

46

EN TCNTI

Разрешение прерываний от таймера

Et:= 1

47

DIS TCNTI

Запрещение прерываний от таймера

Et:= 0

48

EN I

Разрешение внешнего прерывания

Eint:= 1

49

DIS I

Запрещение внешнего прерывания

Eint:= 0

50

SEL RB0

Выбор нулевого банка регистров

PSW[BS]:=0

51

SEL RB1

Выбор первого банка регистров

PSW[BS]:=1

52

SEL MB0

Выбор нулевого банка памяти программ

MB:=0

53

SEL MB1

Выбор первого банка памяти программ

MB:=1

54

ENTO CLC

Разрешение выдачи синхросигнала на выход TО

55

NOP

Пустая команда

56

CLR C

Сброс флага переноса в PSW

PSW[C]:= 0

57

CLR FO

Сброс флага F0 в PSW

PSW[F0]:= 0

58

CLR F1

Сброс флага F1

F1:=0

59

CPL C

Инверсия флага переноса в PSW

PSW[C]:=PSW[~C]

60

CPL F0

Инверсия флага F0 в PSW

PSW[F0]:= PSW[~F0]

61

CPLF1

Инверсия флага F1

F1:= ~F1

Таблица А.3 - Команды передачи управления

Мнемоника

Выполняемые

п/п

команды

Комментарии

преобразования

62

JMP adr11

Безусловный переход

PC[11]:= MB; PC[10-0]:= adr11

63

CALL adr11

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

PC[11]:= MB; PC[10-0]:= adr11;

(SP):= PSW[7-4].PC[11-8];

(SP+1):= PC[7-0]; SP:=SP+2

64

RETR

Возврат из подпрограммы и восстановление PSW

SP:= SP-1; PC[7-0]:= (SP); SP:=SP-1;

PC[11-8]:= (SP)[3-0];

PSW[7-4]:= (SP)[7-4]

65

RET

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

SP:= SP-1; PC[7-0]:= (SP); SP:=SP-1;

PC[11-8]:= (SP)[3-0];

66

JMPP @A

Косвенный переход в текущей странице памяти программ

PC:= PC[11-8] . [AC] ;

67

DJNZ Rn,adr8

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

Rn :=(Rn) - 1; Если Rn<>0, то

PC[7-0]:= adr8, иначе PC:=PC+1;

68

JC adr8

Условный переход, если перенос

Если C0, то PC[7-0]:= adr8, иначе PC:=PC+1

69

JNC adr8

Условный переход, если нет переноса

Если C=0, то PC[7-0]:=adr8, иначе PC:=PC+1

70

JZ adr8

Условный переход, если АС=0

Если AC=0, то Z:=1;

PC[7-0]:=adr8, иначе PC:=PC+1; Z:= 0

71

JNZ adr8

Условный переход, если АС не равен нулю

Если AC0, то Z:=0;

PC[7-0]:=adr8, иначе PC:=PC+1; Z:= 1

72

JT0 adr8

Условный переход, если на входе Т0 высокий уровень

Если T0= 1, то PC[7-0]:= adr8, иначе PC:=PC+1

73

JNT0 adr8

Условный переход, если на входе Т0 низкий уровень

Если T0= 0, то PC[7-0]:=adr8, иначе PC:=PC+1

74

JT1 adr8

Условный переход, если на входе Т1 высокий уровень

Если T1= 1, то PC[7-0]:= adr8, иначе PC:=PC+1

75

JNT1 adr8

Условный переход, если на входе Т1 низкий уровень

Если T1= 0, то PC[7-0]:=adr8, иначе PC:=PC+1

76

JF0 adr8

Условный переход, если флаг F0 установлен

Если F0= 1, то PC[7-0]:= adr8, иначе PC:=PC+1

77

JF1 adr8

Условный переход, если флаг F1 установлен

Если F1= 1, то PC[7-0]:=adr8, иначе PC:=PC+1

78

JTF adr8

Условный переход, если флаг переполнения таймера установлен

Если TF=1, то TF:=0;

PC[7-0]:=adr8, иначе PC:=PC+1;

79

JNI adr8

Условный переход, если на входе ^ZPR низкий уровень

Если ZPR=0, то

PC[7-0]:=adr8, иначе PC:=PC+1

80

JBb adr8

Условный переход, если бит аккумулятора равен единице (b=0-7)

Если AC[b]= 1, то

PC[7-0]:=adr8, иначе PC:=PC+1

Таблица А.4 - Команды, модифицирующие флаги

команды

Мнемоника

PSW

CY CA F0 BS

Признаки

F1 MB TF Z

15-17

ADD

+ + - -

- - - -

18-20

ADDC

+ + - -

- - - -

56

CLR C

0 - - -

- - - -

59

CPL C

+ - - -

- - - -

57

CLR F0

- - 0 -

- - - -

60

CPL F0

- - + -

- - - -

58

CLR F1

- - - -

0 - - -

61

CPL F1

- - - -

+ - - -

30

DA A

+ + - -

- - - -

78

JTF

- - - -

- - 0 -

9

MOV PSW,A

+ + + +

- - - -

64

RETR

+ + + +

- - - -

40

RLC A

+ - - -

- - - -

42

RRC A

+ - - -

- - - -

52

SEL MB0

- - - -

- 0 - -

53

SEL MB1

- - - -

- 1 - -

50

SEL RB0

- - - 0

- - - -

51

SEL RB1

- - - 1

- - - -

67

DJNZ Rn,adr

- - - -

- - - +

70

JZ adr

- - - -

- - - +

71

JNZ adr

- - - -

- - - +

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]