Функциональная организация микро-ЭВМ и микроконтроллеров. Часть 2: К1816ВЕ48. Негода В.Н - 44 стр.

UptoLike

действительных адресов, преобразование чисел, присвоение
действительных значений символьным переменным и т.п.,
прграммист все же должен указать ей некоторые параметры:
начальный адрес прикладной программы, конец ассемблируемой
программы, форматы данных и т.п. Всю эту информацию
программист вставляет в исходный текст своей прикладной
программы в виде директив , которые только управляют процессом
трансляции и не преобразуются в коды объектной программы.
Основные директивы:
ORG nn задает ассемблеру адрес ячейки памяти nn, в которой
должна быть расположена следующая за ней команда прикладной
программы;
EQU ставит в соответствие любому символическому имени,
используемому в программе определенный операнд.
Например, запись PET EQU 13 приводит к тому, что в процессе
ассемблирования всюду, где встретится символическое имя
PET , оно будет заменено числом 13;
SET переопределяет символические имена операндов,
переопределяемых в процессе исполнения программы;
DB обеспечивает занесение в ПП константы, представляющей
собой байт;
END указание об окончании трансляции.
В результате трансляции должна быть получена карта памяти
программ, где каждой ячейке памяти поставлен в соответствие
хранящийся в ней код. В соответствии с форматом команд для
представления их объектных кодов отводятся одна или две ячейки
памяти программ. В первой ячейке всегда располагается код
операции, во второй - непосредственный операнд или адрес
прямоадресуемого операнда, адрес перехода внутри страницы
памяти программ.
Ниже приводится простейшая программа, которая выполняет
действия:
- ввод в двоичном виде двух числовых векторов длиной по 8
элементов в массивы VECT1 и VECT2 портов Р1 и Р2; разрядность
чисел - один байт;
- ввод чисел производится в течении часа в моменты времени,
заданные в массиве TIME в формате двухбайтовых слов, причем
первый байт - минуты, второй байт - секунды. По истечении часа
прцедура ввода повторяется;
- формирование по месту VECT1 суммы векторов VECT1[i] +=
VECT[i];
- вывод полученного массива в двоичном виде в порт BUS.