Машинный язык

Форматы RR, RX и RS команд уже были рассмотрены в предыдущих главах. Этот раздел, содержащий информацию о форматах SS и SI машинных команд, завершает обсуждение основ машинного языка.

ФОРМАТ SI

Один из операндов команд формата SI хранится в памяти и адресуется полем S-типа, другой является непосредственным и указывается на месте второго операнда команд языка ассемблера. В машинных командах порядок операндов иной: адрес памяти следует занепосредственным операндом.

Вспомним, что адресное поле S-типа в команде машинного языка занимает два байта. В первом полубайте поля указывается номер регистра, использующегося в качестве базового. Оставшаяся 12-битовая часть поля содержит значение смещения. Адресное поле S-типа имеет вид

92C2D15E

где В представляет номер регистра, a D — значение смещения. В 4- байтовых командах формата SI под S-поле отводятся последние два байта. Во втором байте указывается непосредственный операнд, в первом, как всегда,— код операции. Итак, команды формата SI, которые на языке ассемблера записываются как

MOP D1 (В 1),12

(МОР — мнемоника кода операций) имеют следующий машинный формат:

Операнд 12 указывается непосредственно в машинной команде, в связи с чем получил название непосредственный операнд. Выборка его не требует обращения ни к памяти, ни к какому-либо регистру.

Команды машинного языка имеют двоичную форму. Если непосредственный операнд задан как-нибудь иначе, то ассемблер преобразует его к двоичному виду перед записью на соответствующее место в машинной команде. Пусть, например, в качестве непосредственного операнда указано С'А', что означает условную запись кода EBCDIC символа А; на место операнда 12 в машинной команде ассемблер поместит сам этот код, а именно С116 (=110000012). Аналогично, если нами используется десятичная константа, то ассемблер приводит ее к двоичному виду и помещает в соответствующее место команды. Например, команда

MVI 12(7),С'Н'

транслируется в

92С8700С

а команда

CLI 100(10),64

в 9540А064

Как мы знаем, когда в качестве операнда указывается перемещаемое выражение, ассемблер определяет соответствующие номер базового регистра и значение смещения. Предположим, что базовым является регистр 13, а значение смещения для имени ВЕЕ равно 15016. В этом случае ассемблер преобразует команду

MVI ВЕЕ + 14,С'В'

к виду

92C2D15E

 



Расскажи друзьям
 
Оглавление
Машинный язык
Формат SS
Резюме
Статьи раздела