- •Адресация регистров и ячеек памяти в пк. Основные компоненты языка ассемблер.
- •Адресация регистров и ячеек памяти в пк.
- •Основные компоненты языка ассемблер.
- •Основные элементы языка ассемблера
- •Числовая константа
- •Мнемоника команды микропроцессора
- •Мнемоника псевдокоманды ассемблера
- •Комментарий
- •Запись программ на языке ассемблера
Комментарий
Комментарий представляет собой произвольную комбинацию символов. Ассемблер не обрабатывает комментарии, и поэтому нет строгих правил их построения. Обычно в качестве комментариев используют краткие пояснения к тексту программы.
Запись программ на языке ассемблера
Каждая строка текста программы может содержать от одного до четырех заполненных полей. Формат полной, то есть содержащей все четыре поля, строки представлен на рис.3.9.
МЕТКА |
КОД |
ОПЕРАНДЫ |
КОММЕНТАРИЙ |
Рис.3.9.Формат строки текста, записываемого на языке ассемблера
Мнемоники команд микропроцессора, а также псевдокоманд ассемблера, кроме MET EQU ARG, размещаются в полях «код» и «операнды».
Директива MET EQU ARG занимает все три левых поля.
Мнемоники команд микропроцессора и псевдокоманд ассемблера (кроме MET EQU ARG) могут быть снабжены метками, имеющими смысл адресов ячеек памяти, в которых размещены соответствующие машинные коды. Такие метки записываются в поле «метка» и дополняются справа символом «:» (двоеточие). Метки, входящие с состав директив MET EQU ARG, и тоже размещающиеся в поле «метка», вовсе не обязательно имеют смысл адреса и не дополняются двоеточием.
Поле «метка» может быть единственным заполненным полем строки. В этом случае метка относится к первой последующей команде микропроцессора или директиве ассемблера.
Любая строка программы может (но не обязана) содержать поле «комментарий». Это поле всегда начинается символом «;» (точка с запятой), за которым следует собственно комментарий.
Поле «комментарий» может быть единственным заполненным полем строки.
Запишем с помощью рассмотренных правил простейшую программу (программа 1) на языке ассемблера. Пусть эта программа должна взять число в одной ячейки памяти, сложить его с числом из другой ячейки и записать их сумму в третью ячейку. Текст такой программы представлен на рис.3.10.
;МЕТКА |
КОД |
ОПЕРАНДЫ |
КОММЕНТАРИЙ |
|
|
|
;ПРОГРАММА 1 |
A0 |
EQU |
02 |
;УСТАНОВИТЬ А0=2 |
B0 |
EQU |
03 |
;УСТАНОВИТЬ В0=3 |
|
ORG |
8000H |
;НАЧАТЬ ПРОГРАММУ С АДРЕСА 8000Н |
START: |
LDA |
ADA0 |
;ЗАГРУЗИТЬ А0 В РЕГИСТР А |
|
MOV |
B, A |
;СОХРАНИТЬ А0 В РЕГИСТРЕ В |
|
LDA |
ADB0 |
;ЗАГРУЗИТЬ В0 В РЕГИСТР А |
|
ADD |
B |
;ВЫЧИСЛИТЬ А0 + В0 |
|
STA |
ADSUM |
;СОХРАНИТЬ РЕЗУЛЬТАТ |
|
HLT |
|
;ОСТАНОВИТЬ МИКРОПРОЦЕССОР |
ADA0: |
|
DB A0 |
;ЯЧЕЙКА ДЛЯ А0 |
ADB0: |
|
DB B0 |
;ЯЧЕЙКА ДЛЯ В0 |
ADSUM: |
|
DS 1 |
;ЯЧЕЙКА ДЛЯ СУММЫ |
|
END |
|
;КОНЕЦ ТЕКСТА ПРОГРАММЫ |
Рис.3.10.Текст простейшей программы на языке ассемблера
Рассмотрим использование меток в этой программе.
Метка START отмечает начальный адрес программы в памяти микро-ЭВМ. В нашем случае START = 8000H, так как именно с этого адреса будет размещать программу директива ORG ARG. Наличие метки START не является здесь обязательным, так как на нее не ссылается ни одна из команд или псевдокоманд программы. Эта метка введена для удобства программиста.
Программа использует три ячейки памяти, снабженные метками ADA0, ADB0, ADSUM. Эти метки имеют смысл, адреса этих ячеек (адрес числа А0, адрес числа В0, адрес суммы). Метки А0 и В0 имеют смысл данных байтового формата – исходных слагаемых А0 и В0. Этим меткам присвоены численные значение директивами MET EQU ARG, то есть установлено А0=2, В0=3. В результате при ассемблировании программы в ячейку ADA0 запишется число 2, а в ячейку ADB0 – число 3. Ячейка ADSUM в программе зарезервирована для размещения результата. Этот результат появляется там только после выполнения программы. До этого содержимое ячейки ADSUM неопределенно.
Вопросы:
Какие вы знаете адресации операндов в командах программы?
Что такое прямая и косвенная адресация?
Что такое ассемблер?
Основные элементы языка ассемблер.
Что такое мнемоника псевдокоманды ассемблера?
