Всего на сайте:
248 тыс. 773 статей

Главная | Информатика

Директивы ассемблера  Просмотрен 158

Директивы ассемблера служат для управления некоторыми спе­циальными, типичными для всех ассемблеров функциями. Директивы ассемблера, задаваемые в программе на языке ассемблера, содержат информацию, нужную для управления трансляцией с исходного на объектный язык, но никогда не выполняются как команды при работе объектной программы. Тем не менее директивам присвоены мнемо­нические коды, которые записываются в поле операции.

С помощью директив одного типа определяются слова данных. Они позволяют ассемблеру сформировать константу и поместить ее в ячейку памяти. Значение константы задается в поле операндов, а ее символический адрес — в поле метки. Аналогичным образом можно задать символ в коде ASCII. Предположим, например, что мнемони­ческий код операции DB (Define a Byte — определить байт) соответ­ствует директиве определения байта. Тогда при трансляции предло­жения

CONST : DB 53H

ассемблер поместит шестнадцатеричное число 53 в ячейку с символи­ческим адресом CONST.

С помощью директив другого типа можно зарезервировать группу ячеек памяти и дать этой группе символическое имя. Это оказывается полезным, когда нужно отвести место для входных, выходных или промежуточных данных. Число резервируемых ячеек указывается в поле операндов, а символический адрес первой ячейки группы - в поле метки. Директива такого типа встречается в программе в табл.5.9 и имеет мнемонический код операции RES (от REServe - резервировать). Встретив предложение

NUM: RES 10D

ассемблер зарезервирует десять ячеек памяти (поскольку D - это код десятичной системы), причем первой из них будет присвоен сим­волический адрес NUM.

Помимо уже упомянутых директив, существуют директива для задания абсолютного адреса в объектной программе и директива для указания конца программы. Вторая из них присутствует в программе в табл. 5.9 и имеет обозначение END (конец). Она просто указывает ассемблеру, где заканчивается исходная программа. Чтобы пояснить директиву, задающую абсолютный адрес, предположим, что ее мне­моническое обозначение ORG (от ORiGin — начало). Тогда предло­жение

ORG 1000H

информирует ассемблер о том, что следующая команда должна иметь шестнадцатеричный адрес 1000. Поэтому, если бы такое предложение предшествовало программе в табл. 5.9, адрес команды LRI 1, Н (NUM) оказался бы равным 1000; в то же время, если бы это предло­жение оказалось между предложениями HLT и RES, группа ячеек NUM расположилась бы в памяти, начиная с адреса 1000.

Предыдущая статья:Программа на языке ассемблера, соответствующая Следующая статья:Макрокоманда
page speed (0.019 sec, direct)