Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
5 Мб
Скачать
☆

3.3.2 Директивы

Директивы – это команды для транслятора. Имя директивы начинается с точки.

Директива .include. позволяет присоединять к данной программе другой программный фрагмент, а не переписывать его каждый раз. Фрагмент оформляется в виде файла и при помощи псевдооператора include и параметра с именем присоединяемого файла вставляется в то место, где находится inc.

Директива .list – включение генерации листинга. Листинг - это файл повторяющий текст программы со всеми присоединёнными фрагментами, и отражающий ход трансляции программы. В нём против каждой строки программы помещаются соответствующие машинные коды, а также найденные при трансляции ошибки.

83

Директива .def - макроопределение – позволяет присваивать регистрам МК любые осмысленные имена, упрощающие чтение и понимание текста программы. В рассматриваемом далее листинге один из регистров назван temp (от temporary – временный) и временно хранит различные величины.

Директива .cseg – псевдооператор выбора программного сегмента памяти. (ОЗУ, РПЗУ программ и РПЗУ данных). Существуют директивы для каждого сегмента:

- сегмент кода (памяти программ)………. .cseg;

- сегмент данных (ОЗУ)………………….. .dseg;

- сегмент EEPROM……………………….. .eseg.

После объявления сегмента все последующие операторы относятся только к нему. До тех пор, пока не будет объявлен другой сегмент.

Команды в программной памяти автоматически располагает в ячейках памяти по порядку транслятор, чему помогает «указатель текущего адреса».

Директива .org – принудительное позиционирование указателя текущего адреса – позволяет принудительно изменить значение указателя текущего адреса. Транслятор следит, чтобы фрагменты программы не налезали друг на друга.

3.3.3 Операторы

Оператор ldi – загрузка в РОН числовой константы. Оператор имеет два папаметра: 1) имя регистра общего назначения, куда помещается константа; 2) значение константы. Общее правило Ассемблера: сначала записывается приёмник информации, потом её значение.

Оператор out – вывод содержимого РОН в регистр ввода-вывода. Оператор имеет два параметра: 1) имя регистра ввода-вывода РВВ, приёмника информации; 2) имя РОН, являющегося источником.

Оператор in – ввод информации из регистра ввода-вывода. Имеет два параметра: 1) имя РОН, являющегося приёмником информации; 2) имя регистра РВВ, источника информации.

Оператор rjmp – команда безусловного перехода. Имеет один параметр – адрес перехода. Этот адрес может быть обозначен меткой. Оператором rjmp может быть и относительный адрес перехода, то есть число байт, на которое нужно сместиться относи

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