Cтраница 1
Счетчик размещения настраивается на границу ближайшего следующего полного слова, и резервируются 4 слова - 16 байт памяти, первый из которых связывается с символом DATATAB. На этой операции счетчик размещения увеличится на 16, 17, 18 или 19 соответственно в зависимости от того, сколько байтов было потеряно при настройке первого элемента на границу первого слова. [1]
Счетчик размещения переустанавливается в нуль, и операторы исходного языка снова читаются один за другим. [2]
Счетчики размещения сдвигаются к границе четного байта, если они уже на нее не установлены, загружаемый элемент данных, содержащий 8 цифр, помещается в очередные че-тьгре байта, младшие два байта получают смещение относительно начала модуля, и к счетчикам размещения прибавляется длина загруженного объекта. [3]
Счетчики размещения настраиваются на ближайшую границу четного байта, если они уже на нее не установлены. Загружается восемь цифр данных. К двум младшим байтам данных в памяти прибавляется значение символа, номер которого указан в первом аргументе. Смещение должно задаваться перемещаемым символом, но само значение его может быть еще не определено. [4]
Оба счетчика размещения продвигаются до ближайшего четного адреса, если они уже ла такой адрес не установлены. [5]
Оба счетчика размещения продвигаются до адреса очередного слова, если они уже на такой адрес не установлены. [6]
Управление счетчиком размещения может использоваться в различных ситуациях. [7]
Таким образом, счетчик размещения, вообще говоря, управляется транслятором. Однако в некоторых случаях программисту бывает целесообразно вмешаться в это управление. [8]
Выражение является просто счетчиком размещения. [9]
Теперь формирование таблицы закончено и счетчик размещения надо вернуть в прежнее состояние ( которое было в момент окончания обработки транслятором предложения TAB DC 256X 00), для чего используем команду транслятору ORQ без параметра. [10]
Как видно, использование ссылки на счетчик размещения при составлении программы позволяет избежать появления в ней лишних меток и улучшает наглядность программы. [11]
В начале своей работы ассемблер присваивает счетчику размещения некоторое начальное значение. Если бы к моменту трансляции было известно истинное начало ая данного модуля в памяти, то адрес йн и следовало бы принять в качестве начального значения счетчика размещения. Другими словами, ассемблер вырабатывает загрузочный модуль в предположении, что соответствующий ему абсолютный модуль будет размещен в памяти, начиная с ячейки С. Таким образом, значения внутренних имен определяются ассемблером с точностью до одного и того же слагаемого, значение которого определяется истинным началом этого модуля в памяти машины. [12]
Для выполнения всей этой работы транслятор использует счетчик размещения, который продвигается по мере отведения места в памяти под выработанные машинные эквиваленты транслируемых автокодных предложений, так что текущее значение этого счетчика равно адресу байта, начиная с которого размещается очередной вырабатываемый машинный эквивалент. В качестве начального значения счетчика размещения транслятор принимает предполагаемый начальный адрес программы, который может быть задан программистом, а при отсутствии такой информации транслятор принимает в качестве предполагаемого начального адреса нулевой адрес. [13]
Эта команда является указанием транслятору занести в счетчик размещения адрес, являющийся значением заданного адресного выражения, после чего-счетчик используется транслятором обычным образом. [14]
Теперь с помощью команды транслятору ORG установим счетчик размещения на тот байт таблицы TAB, индекс которого в этой таблице равен коду точки. [15]