ЛАбОРАТОРНАЯ РАбОТА № 1
ПРОСТЕЙШИЕ ОПЕРАЦИИ С РЕГИСТРАМИ РОН,
АККУМУЛЯТОРОМ И РЕГИСТРОМ PSW
МИКРОКОНТРОЛЛЕРА
Цель работы: изучение языка Assembler, его применение при
выполнении простейших команд с использованием основных регистров микроконтроллера МК51, а также оформление программы в формате Assembler и ее отладка в симуляторе Avsim-51.
1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ
Ассемблер как язык символического кодирования
Основные требования к программе на языке Ассемблер. Для
написания программы на языке Assembler приняты следующие
основные положения:
– используются буквы латинского алфавита и цифры,
– имена (идентификаторы) – это символы ASCII-кода,
– разделители – (:;,).
– каждая команда располагается на одной строке,
– максимальная длина строки 132 символа (лучше – максимальна длина слова 31 символ,
– комментарий располагается после точки с запятой и может
занимать всю строку, можно использовать для комментария русский алфавит,
– нет различия между строчной и заглавной буквой (за исключением метки).
Текстовый редактор – любой, работающий с ASCII-символами.
Формат программы
Каждая строка имеет 4 поля, разделенных хотя бы одним пробелом (лучше клавишей Tabl):
– поле метки (метка необязательна, но если есть, то заканчивается «: »);
– для микроконтроллера МК51 двоеточие может и отсутствовать, но тогда метка должна обязательно начинаться с первой
колонки; метка может ставиться в любой колонке, если ее имя
оканчивается двоеточием.
– поле операции (мнемоники), например, MOV, ADD, MUL,
DIV и т. д.,
– поле операндов содержит (два, один или ни одного операнда);
примеры команд, у которых нет операндов: NOP (нет операций),
RET (возврат из подпрограммы в основную программу: выгружает старший и младший байты PC-программного счетчика из стека), RETI (возврат из подпрограммы обработки прерывания).
– поле комментариев (начинается после символа точка с запятой ‘;’).
Метка – символ адреса команды, в строке которой расположена метка.
Имя метки связано с 16-битным адресом, где расположен 1-й
байт помеченной команды. Имя метки может появиться только
один раз.
Директивы ассемблера
Директивы или псевдокоманды указывают программе
Аssembler порядок ассемблирования, размещают в программной
памяти (ПЗУ) информацию, присваивают численные значения
символическим именам, резервируют память и т. д.
Директива располагается в поле команд, в поле метки наименование может отсутствовать.
Примеры.
Директива EQU присвоить:
R8 EQU 08h ; идентификатору R8:=08h, где := знак присвоения,
h – обозначение представления числа в шестнадцатиричном коде.
Директива ORG начало, указывает адрес следующей выполняемой команды:
ORG 200H ; 200H адрес следующей выполняемой команды.
Директива END ; конец программы (может отсутствовать).
Регистр аккумулятора А
Все операции в МК выполняются в