Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Бальмонт (balmont.lit-info.ru)

   

Булевые операции

Булевы операции

Микросхемы MCS-51 содержат в своем составе “булевый” процессор (табл. 3).

Таблица 3 – Булевы операции

Описание

CLR С

(С) <- 0

CLR bit

(bit) <- 0

(С) <- 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)

“ИЛИ”. Все указанные биты доступны в режиме прямой адресации.

Бит переноса CF в PSW используется как 1-битный аккумулятор булевого процессора.

байт, прибавляемый к программному счетчику PC в случае выполнения условия перехода. Границы таких переходов лежат в пределах между -128 и +127 относительно первого байта, следующего за инструкцией. В PSW отсутствует флажок нуля, поэтому инструкции JZ и JNZ проверяют условие “равно нулю” тестированием данных в аккумуляторе.

Мнемокод

Описание

Длинный безусловный переход по всей памяти

AJMP ad11

Безусловный переход в пределах страницы 2 кбайт

SJMP rel

Безусловный переход в пределах страницы 256 байт

Безусловный переход по косвенному адресу

JZ rel

Переход, если нуль

Переход, если не нуль

JC rel

Переход, если бит переноса установлен

JB bit, rel

Переход, если бит установлен

JNB bit, rel

JBC bit, rel

DJMZ Rn, rel

Команда цикла

DJNZ ad, rel

Команда цикла

Сравнение аккумулятора с байтом и переход,

если не равно

Сравнение аккумулятора с константой и переход, если не равно

CJNE: Rn, #d, rel

Сравнение регистра с константой и переход,

если не равно

CJNE: @Ri, #d, rel

Сравнение байта памяти с константой и переход, если не равно

Длинный вызов подпрограммы во всей памяти

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, указывающей на начало цикла.

CF устанавливается в “1”.