Cтраница 2
![]() |
Значение полей регистра управления. [16] |
Начальные строки 1 - 14 программы содержат директивы ассемблера, которые определяют структуру PARM BLOCK ( строки 2 - 8), структуру REGS - ( строки 9 - 12) и присваивают начальные адреса регистров контроллера ( строки 13, 14) в соответствии с аппаратной логикой декодирования адресов в пространстве ввода - вывода. [17]
Программист должен выдать эту информацию ассемблирующей программе в директивах ассемблера. [18]
Постоянные имена представляют собой символьные обозначения операций машинных команд и директив ассемблера. Они определены в трансляторе и не требуют дополнительного определения их программистом. [19]
Макроопределения, которые имеют то же самое имя, что и директивы ассемблера или мнемоники, вызовет появление предупреждающего сообщения, если директива RDIRECT не использовалась для того, чтобы удалить имя соответствующей директивы или мнемонической схемы из таблиц ассемблера. [20]
Кроме операторов, соответствующих машинным командам, в программе могут быть использованы директивы Ассемблера, предназначенные для управления процессом ассемблирования, резервирования памяти и выполнения других функций. Операторы директив передают информацию о необходимом режиме ассемблирования самому Ассемблеру и не порождают машинных команд. Директивы записываются в формате операторов, но содержимое некоторых полей имеет особенности, которые будут указаны ниже. [21]
Когда точка стоит в поле операнда команды, она означает адрес первого ее слова; когда же точка стоит в поле операнда директивы Ассемблера, она означает адрес текущего слова или байта. [22]
Листинг представляет собой текстовый файл в формате ASCII, который содержит машинные коды, сгенерированные в соответствии с каждой ассемблерной командой, директивой ассемблера или макрокомандой исходного файла. Файл листинга содержит: имя продукта и версии, дату и время, номер страницы вверху каждой страницы. [23]
Ассемблер включает в себя специальные директивы, позволяющие использовать символическое обозначение для операций, ячеек памяти и констант. Кроме того, директивы Ассемблера управляют печатью, определяют начальные значения констант различного типа, позволяют создавать программы, которые в дальнейшем могут связываться в сложные программные комплексы. [24]
Требуемая метка - это символ, которым будет вызвана макрокоманда. Если макрокоманда именована также, как существующая директива ассемблера или мнемоника, будет выдано предупреждение. [25]
ODD управляют счетчиком адресов LC. Дело в том, что команды и ряд директив ассемблера при трансляции должны размещаться по четному адресу. Она добавляет единицу к содержимому LC, если оно нечетное, и оставляет LC без изменения в противном случае. ODD без аргументов выполняет обратную функцию, обеспечивая нечетноезначение счетчика адресов: если значение LC нечетное, никаких действий не производится, в противном случае к нему добавляется единица. [26]
Поле операции содержит символьное обозначение машинной команды, директиву ассемблера или макрокоманду. Ограничителем поля может быть пробел или знак табуляции. [27]
Некоторые символические имена в языке Ассемблера фиксированы и называются постоянными именами. К ним относятся символические имена машинных команд, имена директив Ассемблера и имена регистров. Символические имена остальных элементов программы определяются программистом. Символические имена программиста должны содержать не более 6 допустимых символов, причем первый символ должен быть буквой. Числовые данные в языке Ассемблера могут быть представлены в двоичной, восьмиричной, десятичной или шестнадцатиричной системе счисления. [28]
Директивы - это псевдокоманды, управляющие работой программы ассемблер при трансляции программы. Термин псевдокоманды подчеркивает разницу между операторами машинных команд и директивами ассемблера. [29]
Основную часть языка Ассемблера составляет мнемоника машинных команд, но наряду с этим в его состав входят и такие операторы, которые не выполняются ЭВМ, а только управляют трансляцией исходной программы на машинный язык. Эти команды, а точнее говоря, псевдокоманды, называются директивами Ассемблера. Директивы записываются так же, как машинные команды, в частности в них используются мнемонические сокращения. Основные директивы содержат информацию о начале и конце программы и другие сведения, необходимые для формирования данных и размещения их в памяти. Одна из главных директив - ПРИСВОИТЬ ( приравнять), задающая начальные значения всем переменным, заданным с помощью условных наименований. [30]