Бита - код - условие - Большая Энциклопедия Нефти и Газа, статья, страница 1
Забивая гвоздь, ты никогда не ударишь молотком по пальцу, если будешь держать молоток обеими руками. Законы Мерфи (еще...)

Бита - код - условие

Cтраница 1


Биты кода условий устанавливаются так же, как и в команде BIT.  [1]

Управление битами кода условий осуществляется с помощью одной основной команды. В битах с 15 по 5 содержится ее код операции. В бите 4 содержится 0, если бит кода условий должен быть очищен. В бите 4 содержится 1, если бит кода условий должен быть установлен в единицу. Биты 3, 2, 1 и О соответствуют указателям битов N, Z, V и С соответственно.  [2]

Во многих машинах содержатся биты кода условия, которые указывают на особые условия. Например, там может быть бит переполнения, который принимает значение 1 всякий раз, когда арифметическая операция выдает неправильный результат. Проверяя этот бит, мы проверяем выполнение предыдущей арифметической операции, и если произошла ошибка, то запускается программа обработки ошибок.  [3]

Большинство команд во время выполнения изменяет биты кода условий в слове состояния процессора. Команда пересылки здесь не является исключением. Если после окончания операции содержимое приемника отрицательно, то устанавливается в единицу бит N, в противном случае он очищается; если содержимое равно нулю, то устанавливается в единицу бит Z, в противном случае он очищается; бит V всегда очищается независимо от содержимого приемника; бит С не изменяется командой пересылки - он остается тем же, что и до ее выполнения.  [4]

Команда TST обрабатывает целое число и устанавливает биты кода условий в зависимости от его значения. Анализируемое слово не изменяется. Бит N устанавливается в единицу, если число отрицательно, бит Z - если число равно нулю, биты V и С всегда очищаются. Команда TST является однооперандной. Однооперандные команды имеют следующий формат: биты с 15 по 6 содержат код операции, биты с 6 по 0 - это поле приемника. Поле приемника делится на два сегмента так же, как и для двухоперандных команд.  [5]

Подпрограмма должна иметь свободный доступ к регистрам и битам кода условий, чтобы не зависеть от вызывающей программы, для осуществления этого программа, которая вызывает подпрограмму, должна обеспечить копирование содержимого регистров и битов кода условий, а после завершения подпрограммы - восстановление их исходного состояния. Или подпрограмма непосредственно перед началом работы должна запомнить содержимое регистров и битов кода условий, а перед возвратом в вызывающую программу - восстановить их. Проще всего это реализуется с помощью записи копий содержимого регистров в стек и выборки их из стека в обратном порядке после завершения подпрограммы. В компиляторах на языке ФОРТРАН ЭВМ PDP-11 принято, что запоминание и восстановление содержимого регистров и битов кода условий осуществляются вызывающей программой.  [6]

Биты кода условий будут установлены следующим образом: N 1, Z О, V 0 и бит С не изменится.  [7]

Однако биты кода условий принимают отличные от обычных значения. Бит N в этом случае не имеет значения, поскольку все числа считаются положительными, по той же причине можно проигнорировать бит V, бит С указывает на условие переполнения, а бит Z по-прежнему будет указывать на то, что результат равен нулю.  [8]

Следующая группа команд предназначена для арифметических операций. Команды с буквами СС в названии устанавливают биты кода условия. На машинах CISC большинство команд устанавливают коды условия, но в машине типа RISC это нежелательно, поскольку ограничивает способность компилятора перемещать команды, стараясь заполнить отсрочки.  [9]

Команда сравнения СМР, как следует из ее названия, позволяет сравнить содержимое двух слов памяти. Команда сообщает ЭВМ о том, что требуется вычесть содержимое приемника из содержимого источника и установить биты кода условий в зависимости от полученной разности. Заметим, что здесь вычитание отличается от производимого командой вычитания.  [10]

Функцией этой команды является вычитание целого числа, содержащегося в слове, задаваемом адресом источника, из целого числа, содержащегося в слове, задаваемом адресом приемника, и размещение результата в слове, задаваемом адресом приемника. Это осуществляется путем сложения двоичного дополнения целого числа, содержащегося в источнике, с целым числом, содержащимся в приемнике. Биты кода условий и допустимость результата для полученной суммы определяются для вычитания так же, как для сложения.  [11]

Содержимое заданного регистра и регистра, номер которого получается как логическое ИЛИ для п и 1, обрабатывается как целое число двойной точности и сдвигается в соответствии с содержимым источника. Если п - четное число, то двойное слово в регистрах Rn, Rn 1 сдвигается так же, как целое число одинарной точности в команде ASH. Биты кода условий устанавливаются так же, как в команде ASH. Сдвиг тогда становится циклическим для одинарного слова, если сдвиг направлен вправо. Если сдвиг направлен влево, то он становится сдвигом одинарной точности. Предположим, что в регистрах RO и R1 содержатся коды 1110001110001110, 1111000010101111 соответственно.  [12]

Существует другой тип переходов, позволяющий выполнять в программе условный переход. Он состоит в том, что в зависимости от некоторого условия происходит переход либо по новому адресу, либо к следующей по порядку команде. Источником условий, управляющих командами перехода, являются биты кода условий слова состояния процессора.  [13]

Команда СОМ является однооперандной. Ее выполнение приводит к тому, что формируется дополнение до единицы содержимого приемника. Биты кода условий устанавливаются так же, как и для других логических команд, за исключением бита С, который в данном случае всегда устанавливается в единицу.  [14]



Страницы:      1