Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_OFK.doc
Скачиваний:
13
Добавлен:
06.11.2018
Размер:
1.13 Mб
Скачать

1.2. Опис логічних інструкцій навчального комп’ютера

Група інструкцій, яку ми будемо досліджувати у даній роботі, присвячена логічним операціям: AND (логічне І), OR (логічне АБО), XOR (логічне Виключне-АБО) та NOT (логічне НЕ).

За винятком останньої логічної інструкції NOT, усі решта є адресними інструкціями, які виконують логічні операції над двома числами: значенням числа, що розміщене у акумуляторі та вмістом комірки пам’яті, на яку вказує 12-розрядна адреса у машинному коді інструкції, а також записують результат назад до акумулятора. Інструкція NOT є безадресною і вона заперечує (інвертує) усі розряди акумулятора із збереженням результату назад до акумулятора.

Перші 3 адресні інструкції мають такі 4-розрядні коди операцій:

AND 0100,

OR 0101 та

XOR0110.

Безадресна інструкція NOT має 6-розрядний код інструкції 0111 00.

Результати виконання логічних операцій зручно представити за допомогою такої таблиці:

Вхідні

набори

AND ( І )

*, &, 

OR (АБО)

+, |, 

XOR

Викл. АБО

, #

Вхідні

набори

NOT (НЕ)

A = 0

B = 0

0

0

0

A = 0

1

A = 0

B = 1

0

1

1

A = 1

0

A = 1

B = 0

0

1

1

A = 1

B = 1

1

1

0

У поданій таблиці перші дві колонки містять 4 можливих варіанти комбінацій двох 1-розрядних чисел: 00, 01, 10 та 11. Наступні 3 стовпці зображують відповідні значення результатів виконання логічних функцій (операцій) І, АБО та Виключне-АБО над вхідними наборами. Останні два стовпці містять 2 варіанти одного 1-розрядного числа: 0 і 1, та відповідні значення функції (операції) НЕ. Зверніть увагу на позначення, які використовуються для різних логічних операцій:

І – *, & чи ;

АБО – +, | чи ;

Виключне-АБО –  чи #;

НЕ – ~ чи риска над значенням логічного аргумента , наприклад чи .

Наприклад, 0 & 1 = 0; 1  0 = 1; 1  1 = 0 та ~1 = 0.

Логічну операцію І (*,&, ) називають кон’юнкцією (від англ. – conjuction – з’єднання) або логічним множенням. Дійсно, результат операції І можна отримати, якщо перемножувати вхідні 1-розрядні числа: 0 * 1 = 0 або 1 * 1 = 1. Також назва кон’юнкія (з’єднання) йде від визначення результатів логічної операції І: результат дорівнює 1 тільки у випадку, коли всі аргументи дорівнюють 1.

Логічна операція І (&) дозволяє примусово встановити в "0" (обнулити) потрібні розряди даного числа:

10101010 & 11110000 = 10100000

Логічна операція АБО (+, |, ) має назву диз’юнкція (від англ. – disjunction – роз’єднання) або логічне додавання. Диз’юнкція означає, що кожне з вхідних чисел незалежно виявляє своє значення: за визначенням результат логічної операції АБО дорівнює 1 лише тоді, коли хоча б одне (або всі) з вхідних аргументів дорівнюють 1. Правило логічного додавання тотожньо із арифметичним додаванням у 3-х випадках з 4-х: 1+1  1, хоча 1 | 1 = 1.

Логічна операція АБО ( | ) дозволяє примусово встановити в "1" потрібні розряди даного числа:

10101010 | 11110000 = 11111010

Наведені приклади практичного використання операцій І та АБО називаються створенням "маски" або фільтра.

Логічну операцію Виключне-АБО (, #) іноді ще називають сумою за модулем 2, або – додаванням за модулем 2. Дійсно, результат операції Виключне-АБО повністю співпадає з молодшим розрядом результату арифметичного додавання двох 1-розрядних чисел: 0  1 = 1 (0 + 1 = 1), хоча 1  1 = 0 (1 + 1 = 10). Виключність назви цієї логічної операції походить з її визначення: результат дорівнює 1, коли тільки одне з вхідних чисел дорівнює 1. При виконанні цієї операції над групою аргументів, результат дорівнює 1, якщо серед аргументів непарна кількість 1, якщо кількість 1 парна , то результат = 0.

Логічна операція НЕ є дуже проста: = 1, = 0, тобто - заміна вхідного значення на протилежне. Цю операцію ще називають запереченням або інвертуванням (від англ. inversion – перевертання).

Розглянуті 4 логічні операції вважаються найосновнішими і найбільш розповсюдженими, хоча насправді для двох 1-розрядних вхідних чисел існує різноманітних логічних функцій.

Ще раз відзначимо надзвичайно важливу відмінність логічних операцій у порівнянні з арифметичними – порозрядність, тобто якщо взяти два N-розрядних числа, то логічна операція над ними буде виконуватись над парами відповідних розрядів цих чисел незалежно одна від одної: логічна операція над парою нульових розрядів дасть нульовий розряд результату, логічна операція над парою перших розрядів дасть 1-й розряд результату і т. д. Саме тому логічні операції не впливають на ознаку переносу C, хоча можуть змінювати ознаку нуля результату Z та ознаку знаку результату S.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]