Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Язык ассемблера допускает представление всех элементов программы в символической (буквенно-цифровой) форме, отражающей их содержательный смысл. В качестве алфавита допустимых символов принят код ASCII (американский стандартный код для обмена информацией). Каждая строка ассемблера соответствует одной команде или псевдокоманде (директиве) и может содержать поля метки, мнемоники команды, операнда и комментария. При наличии в программе синтаксических ошибок ассемблер в процессе трансляции выдает сообщения об ошибках.
Метка ассоциируется с 16-битовым адресом той ячейки памяти, где будет размещен первый байт отмеченной команды. Использование меток освобождает программиста от необходимости оперировать абсолютными адресами памяти при записи команд передачи управления. Метка должна начинаться с буквы и заканчиваться двоеточием. Не допускается использовать в качестве меток мнемокоды команд, обозначения операндов и директив ассемблера. Символическое обозначение может появиться в поле метки только один раз.
Мнемокод команды может включать до четырех символов и вместе с обозначениями операндов образует группу ключевых слов ассемблера.
Поле операнда содержит числовые и символьные непосредственные данные, обозначения регистров и регистровых пар МК, адреса памяти. Возможно использование выражений, содержащих простейшие арифметические и логические операции, обработку которых ассемблер при трансляции производит в формате 16-разрядных двоичных чисел. Операнд в виде строки символов, заключенной в апострофы, транслируется в последовательность кодов ASCII этих символов.
Поле комментария начинается с точки с запятой и полностью игнорируется ассемблером. В поле комментария фиксируется обычно функция, которую выполняет группа команд в конкретной прикладной программе.
Кроме команд программа может содержать директивы ассемблера:
Запись исходного текста программы осуществляется с помощью любого текстового редактора (например, вход в редактор Shift+F4 из FAR). Рекомендуется поле метки располагать с нулевой позиции, остальные поля отделять друг от друга клавишей табуляции. Имя программы на языке ассемблера должно иметь расширение. asm. Программа должна заканчиваться директивой END.
Для трансляции исходной программы с языка мнемокодов в машинные коды команд в данной лабораторной работе использу-ются следующие кросс-средства:
· Ассемблер а8051;
· Редактор связей xlink.
Ассемблирование производится в диалоговом режиме. Для трансляции программы TABLO.ASM можно вызвать ассемблер командой а8051, следующим образом отвечая на его запросы:
sourse file [.msa/s03]=TABLO.ASM
list file [.lst]=TABLO
object file=<Enter>
options=<Enter>
После ассемблирования в текущей директории будут сформированы файлы TABLO.LST (файл листинга программы) и TABLO.R03 (файл программы в объектном коде).
Ниже приводится пример записи на языке ассемблера текста программы TABLO.ASM:
Метка | Мнемокод | Операнды | Комментарий |
; Основная программа
MAIN: MOV R0,#20H; начальный адрес массива в РПД
MOV DPTR,#20H; адрес таблицы символов в ПП
MOV R7,#32; число элементов массива
LCALL TEXT; вызов подпрограммы TEXT
MOV R0,#20H; начальный адрес массива в РПД
MOV DPTR,#40H; адрес таблицы символов в ПП
MOV R7,#32; число элементов массива
LCALL TEXT; очистка экрана
SJMP MAIN; зацикливание программы
; Подпрограмма заполнения массива ОЗУ
TEXT: CLR A; очистка аккумулятора
MOVC A,@A+DPTR; пересылка символа в А
MOV @R0,А; пересылка символа в РПД
DJNZ R6,$; временная задержка
INC R0; увеличение указателей памяти
INC DPTR; на единицу
DJNZ R7,TEXT; организация цикла обработки
RET; массива
; Таблица кодов отображаемых символов
ORG 20H
DB '▫▫DEAR▫▫FRIEND!▫WELCOME▫TO▫TOMSK'
ORG 40H
DB '▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫▫'; 32 пробела
END
При наличии синтаксических ошибок ассемблер выдаст строку с ошибкой и кратким комментарием к ней на экран дисплея, а также продублирует эту информацию в листинге программы.
Если ошибок нет, можно вызвать редактор связей:
Дата публикования: 2014-11-04; Прочитано: 656 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!