Cтраница 4
Первый операнд - номер регистра - задается дссятлчным представлением. Для указания второго операнда - адреса основной памяти - допускаются представления двух типов: явный адрес и неявный адрес. [46]
Таблица базовых регистров содержит номера базовых регистров и базовые адреса, объявленные операторами USING. Эта таблица состоит из двух частей: в одной части хранятся номера базовых регистров и базовые адреса для перемещаемых неявных адресов, а в другой - для абсолютных. [47]
Программа решения задачи состоит из последовательности команд, которые выполняются друг за другом. Исключения составляют команды передачи управления, изменяющие естественный ход выполнения программы путем передачи управления по указанному в них явному или неявному адресу. [48]
Неявный адрес С в команде 8 будет представлен в виде базы - смещения. В качестве регистра базы будут использованы регистр 4 и базовый адрес В. Неявный адрес С недоступен регистру 3, так как имеет меньшее смещение. Команда 12 задает адресную константу. [49]
Для данных в основной памяти язык ассемблера допускает две формы адресации: явную и неявную. В явном адресе указывают регистр базы и смещение или индексный регистр, регистр базы и смещение. Неявный адрес не содержит в явном виде указания на регистр базы. Явный адрес всегда записывают с использованием абсолютных выражений, а в неявный адрес, как правило, входит перемещаемое выражение. [50]
Хг-номер ( имя) регистра, по которому производится индексирование. Запись неявного адреса в виде s2 означает, что второй адрес в команде должен модифицироваться только с целью базирования. Поскольку в случае задания неявного адреса базирование обеспечивается транслятором, то указание регистра, по которому производится базирование, отсутствует. [51]
При втором способе механизм доступа к данным, имеющийся в базовом вычислителе, расширяется. В этом случае для ссылок на данные, хранящиеся в основной памяти, используются главным образом переместимые имена данных. Этот тип символического адреса называется неявным адресом. [52]
Еще раз обратим внимание на то обстоятельство, что в командах с операциями сравнения и пересылки строк ( S CS и S: CS) операндами являются строки произвольной длины / ( 1 / 256) - эта длина в явном виде содержится в поле длины команд типа SS, в которых используются указанные операции. При программировании на автокоде следует помнить, что содержимое поля длины в машинной команде типа SS транслятор формирует по первому адресу, указанному в символической команде. Если этот адрес неявный, то в качестве значения I принимается характеристика длины этого неявного адреса ( при отсутствии в нем специального указания о длине операндов); в случае явного адреса в нем в явном виде должна быть указана и длина операндов. [53]