Cтраница 1
![]() |
Границы, соответствующие значениям операндов команды CNOP. [1] |
Область литералов состоит из четырех разделов: в первый помещаются литералы с длиной, кратной восьми, во второй - с длиной, кратной четырем, в третий - с длиной, кратной двум, а в четвертый - с нечетной длиной. [2]
Обычно область литералов располагается в конце первой программной секции. Естественно, что в данной программной секции должен существовать регистр базы, обеспечивающий доступ к области литералов. [3]
![]() |
Границы, соответствующие значениям операндов команды CNOP. [4] |
Началом области литералов является адрес первого двойного слова, следующего за оператором LTORG. Если до оператора LTORG литералов не было, то счетчик адреса выравнивается на границу ближайшего двойного слова. [5]
Оператор LTORG определяет область литералов. [6]
Команда LTORG ( начать область литералов) определяет начало области литералов, в которую помещаются литералы, встречающиеся после предыдущей команды или начала программы. [7]
При трансляции ассемблер обычно собирает все литералы в единую область литералов, встраивает эту область в конце транслируемого программного модуля и заменяет каждый литерал, встречающийся в поле операндов исходной программы, адресом его хранения. [8]
Команда LTORG ( начать область литералов) определяет начало области литералов, в которую помещаются литералы, встречающиеся после предыдущей команды или начала программы. [9]
Получив управление от блока выделения имен, блок распределения памяти создает область литералов, в которую включаются все те литералы, которые встретились в исходной программе после последней команды LTORG. В таблице литералов эти литералы к моменту завершения первого просмотра не имеют адресов и записаны после условной записи, являющейся признаком конца последней области литералов, созданной командой LTORG. Если в исходной программе не было команд LTORG, то ни один литерал не имеет адреса. [10]
Во время трансляции все литеральные константы собираются в некоторой области, называемой областью литералов. Начало области литералов всегда располагается на границе двойного слова. Порядок расположения констант в области литералов определяется следующим образом: сначала размещаются константы длиной в двойное слово, затем длиной в слово и полуслово. Замыкают область литералов константы нечетной длины. [11]
При обработке программы транслятор собирает использованные литералы в специальной области памяти, называемой областью литералов. Как правило, она располагается в конце первой секции, однако программист может управлять размещением этой области. [12]
Команда END - закончить модуль - предписывает закончить трансляцию исходного модуля и сформировать область литералов. [13]
Перемещаемое выражение в поле операнда указывает точку, в которую передается управление после загрузки. Область литералов формируется по тем же правилам, что для команды LTORG, но для многосекционной программы она помещается в конце первой программной секции. [14]
Во время трансляции все литеральные константы собираются в некоторой области, называемой областью литералов. Начало области литералов всегда располагается на границе двойного слова. Порядок расположения констант в области литералов определяется следующим образом: сначала размещаются константы длиной в двойное слово, затем длиной в слово и полуслово. Замыкают область литералов константы нечетной длины. [15]