Учебная работа. Реферат: Булевые операции
Таблица 3 – Булевы операции
Мнемокод
Описание
CLR С
(С) <- 0
CLR bit
(bit) <- 0
SETB С
(С) <- 1
SETB bit
(bit) <- 1
CPL С
(С) <- NOT(С)
CPL bit
(bit) <- NOT (bit)
ANL С, bit
(С )<- (C) / (bit)
ANL С, /bit
(С) <- (C) / NOT(bit)
ORL С, bit
(С) <- (C) / (bit)
ORL С, /bit
(С) <- (C) / NOT(bit)
MOV С, bit
(С) <- (bit)
MOV bit, C
(bit) <- (C)
Внутреннее ОЗУ имеет 128 прямо адресуемых бит. Место SFR может также поддерживать до 128 битовых полей. Битовые аннотации производят условные переходы, пересылки, сброс, инверсии, операции “И”, “ИЛИ”. Все обозначенные биты доступны в режиме прямой адресации.
бит переноса CF в PSW употребляется как 1-битный аккумулятор булевого микропроцессора.
Аннотации переходов
Адреса операций переходов обозначаются на языке ассемблера меткой или настоящим значением в пространстве памяти программ (табл.4). Адреса условных переходов ассемблируются в относительное смещение – знаковый б, прибавляемый к программному счетчику PC в случае выполнения условия перехода. Границы таковых переходов лежат в границах меж -128 и +127 относительно первого б, последующего за аннотацией. В PSW отсутствует флаг нуля, потому аннотации JZ и JNZ инспектируют условие “равно нулю” тестированием данных в аккуме.
Таблица4.4 –Аннотации переходов
Мнемокод
Описание
LJMP ad16
Длиннющий бесспорный переход по всей памяти
AJMP ad11
Бесспорный переход в границах странички 2 кбайт
SJMP rel
Бесспорный переход в границах странички 256 б
JMP @A+DPTR
Бесспорный переход по косвенному адресу
JZ rel
Переход, если нуль
JNZ rel
Переход, если не нуль
JC rel
Переход, если бит переноса установлен
JNC rel
Переход, если бит переноса не установлен
JB bit, rel
Переход, если бит установлен
JNB bit, rel
Переход, если бит не установлен
JBC bit, rel
Переход, если бит установлен со сбросом бита
DJMZ Rn, rel
Команда цикла
Продолжение табл4.4
DJNZ ad, rel
Команда цикла
CJNE: A, ad, rel
Сопоставление аккума с б и переход,
если не равно
CJME A, #d, rel
Сопоставление аккума с константой и переход, если не равно
CJNE: Rn, #d, rel
Сопоставление регистра с константой и переход,
если не равно
CJNE: @Ri, #d, rel
Сопоставление б памяти с константой и переход, если не равно
LCALL ad16
Длиннющий вызов подпрограммы во всей памяти
ACALL ad11
Вызов подпрограммы в границах странички 2 кбайт
RET
Возврат подпрограммы
RETI
Возврат подпрограммы обработки прерывания
NOP
Пустая операция
Существует три вида команды бесспорного перехода – SJMP, LJMP, AJMP, различающиеся форматом адреса предназначения. {Инструкция} SJMP шифрует адресок как относительное смещение и занимает 2 б. Дальность перехода ограничена спектром от -128 до +127 б относительно аннотации, последующей за SJMP. В аннотации LJMP употребляется адресок предназначения в виде 16-битной константы. Длина команды составляет 3 б. адресок предназначения может размещаться в любом месте памяти программ. Команда AJMP употребляет 11-битную константу адреса. Команда состоит из 2 б. При выполнении данной аннотации младшие 11 бит адресного счетчика замещаются 11-битным адресом из команды. 5 старших бит PC остаются постоянными. Т.е., переход может выполняться снутри двухкилобайтного блока, в каком размещается {инструкция}, последующая за командой AJMP.
Существует два вида команды вызовы подпрограммы – LCALL и ACALL. {Инструкция} LCALL употребляет 16-битный адресок вызываемой подпрограммы. В этом случае подпрограмма быть может размещена в любом месте памяти программ. {Инструкция} ACALL употребляет 11-битный адресок подпрограммы. В этом случае вызываемая подпрограмма обязана быть размещена в одном двухкилобайтном блоке с аннотацией, последующей за ACALL. Оба варианта команды кладут на стек адресок последующей команды и загружают в PC соответственное новое
Подпрограмма заканчивается аннотацией RET, позволяющей возвратиться на аннотацию, последующую за командой CALL. Эта {инструкция} снимает со стека адресок возврата и загружает его в PC. {Инструкция} RETI употребляется для возврата из подпрограмм обработки прерываний. Единственное отличие RETI от RET заключается в том, что RETI информирует систему о том, что обработка прерывания закончилась. Если в момент выполнения RETI нет остальных прерываний, то она схожа RET.
{Инструкция} DJNZ создана для управления циклами. Для выполнения цикла N раз нужно загрузить в счетчик б со значением N и закрыть тело цикла командой DJNZ, указывающей на начало цикла.
Команда CJNE ассоциирует два собственных операнда как беззнаковые целые и производит переход по обозначенному в ней адресу, если сравниваемые операнды не равны. Если 1-ый операнд меньше, чем 2-ой, то бит переноса CF устанавливается в “1”.
]]>