Шинное ИЛИ (BusOR)

Входы (Inputs)

ПинТипОписание
Abus8Первая шина
Bbus8Вторая шина

Выходы (Outputs)

ПинТипОписание
Qbus8A | B (побитовое ИЛИ)

Логика работы

BusOR тоже сравнивает две шины позиция за позицией, но правило другое: единица на выходе появляется там, где есть хотя бы одна единица — на шине A, на шине B или на обеих сразу. Ноль получается только в одной комбинации: 0 OR 0 = 0. Похожая картина из жизни — два выключателя, подключённых параллельно к одной лампе: замкни любой, и свет уже горит.

Главное свойство — установка битов. Там, где бит маски равен 0, значение из A проходит на выход без изменений; там, где 1, — принудительно становится единицей. Пример на байте: 10000000 OR 00001111 = 10001111 — маска включила четыре младших бита, не тронув остальные. А склейка тетрад выглядит так: 11110000 OR 00001111 = 11111111 — две половинки слились в целый байт без единого конфликта.

Тонкость: ИЛИ не умеет стирать — единицу нельзя убрать, добавив что-то на второй вход. A OR 11111111 всегда даёт 255: байт заливается единицами целиком. Поэтому пары «установить бит» и «сбросить бит» в процессорах разделены: первое делает ИЛИ с маской, а второе — И с инверсной маской.

Примеры (8 бит)

A (bin)B (bin)Q (bin)Q (dec)
111100000000111111111111255
100000000000111110001111143
101010100000000010101010170
00001111000011110000111115

Применение

В АЛУ (уровень 13) шинное ИЛИ стоит в одном ряду с И, XOR и сложением — это базовый набор операций над байтами. В процессоре ИЛИ отвечает за установку флагов и статусов: подложил маску с единицей в нужной позиции — и бит состояния включён, остальные не тронуты. Так формируются байты признаков «перенос», «ноль», «переполнение».

Главная проектная роль — сборка байта из частей. В Harvard-архитектуре (уровень 16) команда — это опкод в старшей тетраде и операнд в младшей. Сдвинув опкод влево на 4 позиции через BusSHL, процессор склеивает половинки одним ИЛИ: (опкод << 4) OR операнд — готовый байт для записи в память команд. Тем же способом собираются координаты пикселя на MatrixDisplay и объединяются биты состояния нескольких устройств в один общий байт.

Собери это сам →

Смежные компоненты

Статьи по теме

Частые вопросы

Где применяется побитовое ИЛИ?

Для установки битов числа и объединения флагов: достаточно одного единичного бита.

Как установить один бит в единицу, не трогая остальные?

Наложи маску с единицей только в нужной позиции: 10101010 OR 00000100 = 10101110 — бит 2 включён, остальные биты без изменений.

Чем ИЛИ отличается от исключающего ИЛИ?

ИЛИ ставит бит в единицу и оставляет её: 1 OR 1 = 1. XOR работает как переключатель: 1 XOR 1 = 0, повторное применение той же маски возвращает всё как было.