Метка операция операнд комментарий 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Метка операция операнд комментарий



Не обязательно использовать все поля, но они должны быть в указанном порядке.

МЕТКА - это символическое имя адреса команды, находящейся в данной строке; обычно метки придаются командам, к которым предусматривается обращение в процессе выполнения программы. Метка начинается с буквы и ее длина неограниченна, но различаются только первые восемь символов. Нельзя внутри метки использовать пробел. Нельзя в качестве меток записывать имена регистров, коды команд и другие зарезервированные сочетания (например, А, М, СМР и т.п., но А2, ММ, СМР9 можно). В одной программе не должно быть двух и более одинаковых меток. Разделителем между меткой и операцией является двоеточие.

ОПЕРАЦИЯ - в этом поле содержатся мнемокоды команд или директивы ассемблера, которые описываются ниже. Разделителем между кодом команды и операндами является пробел.

ОПЕРАНД - это символические имена регистров, адресов, меток или константы. Целочисленные константы могут быть определены в двоичной (префикс b, b’11101101), шестнадцатеричной (префикс h, h’2a3f) или десятеричной (префикс отсутствует) системах счисления. При наличии двух операндов разделителем служит запятая. У некоторых команд операнды отсутствуют (RRC, NOP и др.) и поле операндов остается пустым. Операнд может быть выражением. На начальном этапе обучения программированию на Ассемблере их можно не использовать. С правилами составления выражений можно познакомиться в литературе.

КОММЕНТАРИЙ начинается с точки с запятой. Если строка начинается с точки с запятой, то вся строка считается комментарием, и в ней могут присутствовать любые символы в любой последовательности. Комментарий является вспомогательным средством, используемым для пояснения и документирования программ. Не следует пренебрегать комментариями, так как через короткое время программа становится непонятной даже ее автору.

В приложении 1 приведен пример записи программы на Ассемблере.

 

 

Директивы Ассемблера

 

Директивы Ассемблера (или псевдокоманды) управляют работой транслятора и не переводятся в машинные коды. Используемый в лаборатории транслятор распознает 15 директив. В табл. 2 приведены правила записи некоторых наиболее употребительных директив. Метки, заключенные в квадратные скобки, необязательны. Все директивы могут иметь метки и комментарии.

 

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

 

Директива. END располагается на последней строке и указывает транслятору на завершение программы. В программе может быть только одна Директива. END.

 

Директива. EQU (эквивалентность) ставит в соответствие константам, адресам, регистрам и т.п. символические имена. В случае изменения, например, адресов достаточно отредактировать только директиву. ORG.

 

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

 

 

Таблица 2

 

  Дирек-тива

Синтаксис

Пример

.ORG

.ORG <выражение>

.ORG h’800; Установить адрес h’800

END

.END

 

EQU

.EQU<имя>,<выражение>

.EQU POR, H’ 20; Уровень порога равен 32 вольтам

SET

.SET<имя>, <выражение>

.SET A_TAB, H’8D0; Начальный адрес таблицы 8D0

DB

.DB, <список выражений>

AT:.DB 23,h’ab,’stop’; В память заносятся 23, 16-ричное число ab и 4символа в КОИ 8. Метка АТ соответствует адресу числа 23.

DW

.DW, <список выражений>

.DW h’3de7,1999,’a’

RS

.RS, <выражение>

matrica:.RS 9; Резервирует 9 ячеек памяти для матрицы 3*3

           

 

Директива. DB резервирует ячейки памяти и помещает в них представленные выражения. В качестве выражения может присутствовать цепочка символов, заключенная в кавычки, например, ‘STOP’. На каждое выражение или символ отводится один байт.

Директива. DW действует аналогично директиве DB с той лишь разницей, что каждое выражение хранится в двух ячейках памяти и цепочки символов не допускаются.

Директива. RS только резервирует ячейки памяти, в качестве выражения обычно записывается просто число резервируемых ячеек. Часто эта директива обозначается как DS.

 

 

Режим ассемблирования

 

Вызов транслятора с языка Ассемблера осуществляется командой IASM 85< NAME >, где <NAME> - имя прикладной программы, написанной согласно изложенным выше правилам. Расширение asm можно не указывать. Ассемблирование выполняется сразу и выдается сообщение:

000XXX lines assembled - проассемблировано 000ХХХ строк,

0 Errors detected - ошибок нет.

Такое сообщение указывает на отсутствие синтаксических ошибок в тексте программы, но ни в коей мере не говорит о правильности работы программы. Если ассемблером обнаруживаются ошибки, то выдается сообщение:

(тип ошибки) in line xx column xx - в строке хх, колонке хх,

(тип ошибки) in line xx column xx - в строке хх, колонке хх,

000ХХХ lines assembled - проассемблировано 000ХХХ строк,

2 Errors detected- обнаружено 2 ошибки.(2 ошибки взято для примера).

В ходе ассемблирования создаются еще файл листинга с тем же именем и расширением lst иобъектный файлс расширением obj. Причем оба файла создаются как при отсутствии, так и при наличии ошибок. Места ошибок отмечаются в листинге символом ^. Ошибки в исходном файле исправляются в текстовом редакторе с повторным ассемблированием. Редактирование текста выполняется по правилам текстового редактора. Файл листинга кроме исходного текста содержит дополнительно номера строк, адреса ячеек памяти и содержимое этих ячеек, т.е. машинные коды (см. приложение 1).

Объектный файл в формате INTEL, который в реальных условиях с помощью программатора записывается в ПЗУ, в данном случае используется симулятором.

 

Практическая часть



Поделиться:


Последнее изменение этой страницы: 2020-10-24; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.247.31 (0.008 с.)