Cтраница 1
Адреса констант, порожденных литералами, также должны быть обеспечены базовыми регистрами. Это следует учитывать при решении, включать ли в исходный модуль ( и если да, то где располагать) предложения LTORG. Заметим, что если предложения LTORG не используются, то адреса констант, порожденных литералами, употребленными в любом месте исходного модуля, окажутся базированными с помощью базовых регистров первой секции. Это надо учитывать при выборе числа этих регистров и значений базовых адресов. Если команда I какой-либо программной секции S1 использует неявный адрес из другой программной секции S2, то значения в базовых регистрах для S2 не должны изменяться командами S1, предшествующими I по выполнению. [1]
Помимо адреса константы в таблицу заносят порядковый номер имени в таблице внешних имен ( если константа зависит от внутреннего имени, то фиксируются номер имени исходной программы - секции), длина константы и знак ( - - или -), с которым имя входит в выражение, определяющее значение адресной константы. [2]
На границу полуслова выравниваются адреса констант типа Н, S и Y, на границу слова - адреса констант типа А, Е, F, Q и V, на границу двойного слова - адреса констант типа D и L. [3]
Если числа, стоящие во всех трех адресах константы, имеют одинаковые знаки, лучше выбрать тот вариант, в котором эти числа положительны, так как такие константы записываются проще. [4]
В последней команде в качестве А2 надо указать адрес константы, представляющей число 2, а в качестве Л4 - адрес команды останова; эти адреса тоже пока неизвестны, поэтому их придется записать в этой команде позже. [5]
В качестве Л2 в последней команде надо указать адрес константы, представляющей значение я, но поскольку мы еще не знаем, в какой ячейке будет размещена эта константа, второе поле адреса команды 0013 пришлось временно оставить пустым. [6]
Если в команде первый и второй адреса являются адресами констант УВК, то по обоим адресам выдается в первую и вторую магистрали одна и та же константа УВК, адрес которой получается путем поразрядного логического сложения первого и второго адресов данной команды. [7]
Регистр 6 содержит относительный адрес 12-го сегмента таблицы, регистр 8 содержит адрес константы PRETAB, а получившаяся после сложения сумма - это действительный абсолютный адрес 12-го сегмента таблицы. [8]
Обращение к подпрограммам ПГП производится с помощью макрокоманды CALL, список параметров которой содержит адреса констант или переменных, являющихся аргументами. [9]
![]() |
Косвенная регистровая адресация. [10] |
Однако использование непосредственной адресации уменьшает объем программы и сокращает время ее выполнения путем исключения неупорядоченных адресов констант. Другим важным моментом является то, что при этом способе адресации с программиста снимаются заботы по учету различных мелких деталей, таких, как присвоение неповторяющихся имен используемым константам. [11]
На границу полуслова выравниваются адреса констант типа Н, S и Y, на границу слова - адреса констант типа А, Е, F, Q и V, на границу двойного слова - адреса констант типа D и L. [12]
![]() |
Структура индексной ячейки и константы при модификации адреса.| Структура индексной ячейки и константы при модификации адреса. [13] |
Процесс прибавления к относительному адресу величины базисного адреса ( базиса) называется базированием, а процесс прибавления к адресам констант переадресации из индексной ячейки - индексированием. [14]
Из сравнения п.п. а) и в) следует, что в поеледнем случае требуется дополнительная ячейка для указания фактического ( абсолютного) адреса константы С. [15]