Cтраница 3
Иерархическая структура данных. [31] |
Модификатором длины могут быть только 3 или 4 байт. Если модификатор длины не указывается, производится выравнивание текущего значения счетчика адреса на границу слова. [32]
Наличие комментария не является обязательным. При этом имя и его значение заносятся ассемблером в таблицу символов. Оператор прямого присваивания может использоваться также для изменения текущего значения счетчика адресов, когда требуется разместить команду или данные по заданному адресу. [33]
Иерархическая структура данных. [34] |
Модификатором длины могут быть только 3 или 4 байт. Если модификатор длины не указывается, производится выравнивание текущего значения счетчика адреса на границу слова. [35]
Ниже представлен фрагмент программы на RITRANe, Описана таблица идентификаторов. Строки таблицы состоят из трех полей: идентификатор ( ID), тип идентификатора ( TYP) и адрес ( ADDR), присвоенный идентификатору. Регистр RID содержит идентификатор; счетчик CTYP содержит внутреннее значение типа идентификатора; счетчик CADDR содержит текущее значение счетчика адреса программы. В этом фрагменте идентификатор вместе со своими характеристиками записывается в таблицу. [36]
Таблица имен содержит все имена, встречающиеся в поле названия операторов исходной программы, и их характеристики. Значение ( адрес) назначается имени в момент его включения в таблицу. Адрес равен текущему значению счетчика адреса, быть может, скорректированному для выравнивания на соответствующую границу. [37]
Затем считывается первое предложение исходной программы. Анализируется поле кода операции, чтобы определить, не задает ли считанное предложение псевдооперацию. Если нет, то просматривается таблица машинных операций ( МОТ) с целью нахождения элемента, соответствующего коду операции исходного предложения. Найденный элемент таблицы МОТ указывает длину ( 2, 4 или 6 байтов) команды. Поле операнда просматривается на наличие литерала. Если найден новый литерал, он. Затем проверяется, есть ли символ в поле метки исходного предложения. Если метка имеется, то она заносится в таблицу символов ( ST) вместе с текущим значением счетчика адреса. После всего этого значение счетчика адреса увеличивается на длину команды, а копия карты исходной программы сохраняется для второго просмотра. Приведенная выше последовательность повторяется для каждого следующего предложения исходной программы. [38]