Читайте также:
|
|
Команды поразрядной обработки информации отличаются от команд арифметических операций тем, что работают с отдельными битами независимо от содержимого байта в целом. Такие команды есть для байтового и битового формата данных. Их также называют логическими командами, потому что с их помощью можно вычислять функции алгебры логики НЕ, И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ. Приведем для справки таблицу значений этих функций:
Табл. 6.
X | Y | X.AND.Y | X.OR.Y | X.XOR.Y | |
l | |||||
Все команды поразрядной обработки информации не влияют на содержимое слова состояния программы, за исключением случаев непосредственной записи результата в этот регистр или его биты.
Для получения обратного кода (логическая функция НЕ) при байтовом формате данных предназначена команда:
CPL А
Мнемоника этой командыComPLement означает «дополнение», хотя в результате ее выполненияполучается не дополнительный, а обратный код. Имеются две команды аналогичного назначения, работающие с отдельными битами, например:
CPL С
CPL Rn.j
Здесь Rn.j обозначает j, бит регистра Rn
Кроме того, инверсия бита может быть использована вкомандах И и ИЛИ, как показано далее.
Команды для вычисления функции И в байтовом формате используют разнообразные способы адресации. По-видимому, мнемоника команды расшифровывается как ANd Logical:
ANL А,#dat8
ANL А,Rn
ANL А,@Ri
ANL А,dat8
ANL dat8,A
ANL 1dat8,#2dat8
Эти команды могут использоваться, например, для очистки отдельных битовдвоичного кода или для проверкиналичия 1 в некотором наборе битов. Имеются две команды, вычисляющие функциюИ в битовом формате:
ANL C,Rn.j
ANL С,/Rn.j
Символ косой черты во второй команде означает, что для вычисления логической функции используется инвертированное значение бита.
Аналогичный набор команд имеется и для функции ИЛИ вбайтовом формате с мнемоникой ORLogical:
ORL A, # dat8
ORL А, Rn
ORL A, @Ri
ORL А, dat8
ORL dat8, A
ORL 1dat8, #2 dat8
Эти команды могут использоваться, например, для установки отдельных битов двоичного кода в “1”. Имеются две аналогичные команды, вычисляющие функцию ИЛИ в битовом формате:
ORL С,Rn.j
ORL С,/Rn.j
Символ косой черты во второй команде означает, что для вычисления логической функции используется инвертированное значение бита.
Для функции ИСКЛЮЧАЮЩЕЕ ИЛИ аналогичныекоманды существуют только в байтовом формате. Наверное соответствующая команда расшифровывается как exclusive oR Logical:
XRL A,#dat8
XRL A, Rn
XRL A,dat8
XRL A,@Ri
XRL dat8,A
XRL 1dat8,#2dat8
Эти команды могут использоваться, например, для изменения значения отдельных битов двоичного кода на обратное (toggle). Они могут также использоваться для проверки кодов на совпадение.
К командам поразрядной обработки информации можно отнести команды циклического сдвига влево и вправо, работающие с 8 битами (аккумулятор) или с 9 битами (аккумулятор + бит переноса):
RL A
RR А
RRC А
Первая буква в мнемокодах этих команд означает Rotate (поворачивать), вторая указывает па направление (Left или Right), а третья - на участие бита
переноса. При сдвиге влево во все биты накопителя кроме самого младшего записывается старое содержимое соседнего правого бита. При сдвиге вправо во все биты накопителя кроме самого старшего записывается старое содержимое соседнего левого бита. Если бит переноса не участвует в операции циклического сдвига, то при сдвиге влево в самый младший байт записывается старое содержимое самого старшего бита, а при сдвиге вправо в самый старший байт записывается старое содержимое самого младшего бита. При участии бита переноса его содержимое включается в цепочку циклического переноса, что позволяет осуществлять сдвиги содержимого многобайтовых кодов. К операции циклического сдвига на 4 разряда без участия бита переноса можно отнести команду:
SWAP A
Она осуществляетобмен полубайтов содержимого накопителя, так что ее можно интерпретировать как сдвиг младшего полубайта, на 4 разрада влево и. сдвиг старшего полубайта на 4 разрада вправо.
Если перед выполнением команды сдвига очистить бит переноса, то сдвиг с участием этого бита, может использоваться в качестве команды арифметической операции.Сдвиг вправо соответствуетделению положительного числа на 2, притом в бит переноса записывается остаток от деления. Сдвиг влево соответствует умножению положительного числа на 2, притом “1” в бите переноса сигнализируето переполнении.
Дата добавления: 2015-07-20; просмотров: 58 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Группа команд пересылки данных | | | Группа арифметических команд |