Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Антонов О.С., Хiхловська I.В. Обчислювальна тех...doc
Скачиваний:
15
Добавлен:
01.09.2019
Размер:
4.12 Mб
Скачать

12.2.3 Команди логічних операцій

AND.B D1, D3 ; Операція логічного ТА над молодшими

; байтами операндів , які розташовані у D1

; та D3; результат записується у D3

AND.I #$FBFB ; Задання маски переривань відповідно до

; рівня 4

ОRI.B #4, CCR ; Встановлення біта Z = 1 у регістрі

; прапорців ССR

EOR.L DO, D2 ; Виконання операції виключного АБО над

; довгими словами, які зберігаються у D2, та

D0

EORІ.B #$55, $400700.L ; Інвертування непарних біт у байті, який

; зберігається у комірці пам’яті з адресою

; $400700

Прапорець N у регістрі ССR при виконанні логічних операцій встановлюється залежно від знаку результату. Прапорець Z = 1, якщо результат є нульовий . Прапорці V та C завжди встановлюються такими, що дорівнюють нулю. Прапорець Х не змінюється.

12.2.4 Команди зсувів

Команди арифметичних та логічних зсувів реалізуються за схемами (рис.12.3...12.5):

Рисунок 12.3 — Арифметичний та логічний зсуви ліворуч

(команди ASL, LSL)

Рисунок 12.4 — Арифметичний зсув праворуч (команда ASR)

Рисунок 12.5 — Логічний зсув праворуч (команда LSR)

Команди циклічних зсувів реалізуються за схемами (рис. 12.6...12.9):

Рисунок 12.6 — Циклічний зсув ліворуч (команда ROL)

Рисунок 12.7 — Циклічний зсув праворуч (команда ROR)

Рисунок 12.8 — Циклічний зсув ліворуч через прапорець Х

(команда ROXL)

Рисунок 12.9 — Циклічний зсув праворуч через прапорець Х

(команда ROXR)

Кількість розрядів, на яку реалізується зсув, записується або безпосередньо у команді (1...8) або у регістрі даних, лічильнику зсувів. Операнд, який записано у пам’яті, можна зсувати тільки на 1 біт і його розмір має бути не більш ніж слово.

ASR #3, D4 ; Арифметичний зсув молодшого слова у регістрі

; D4 праворуч на 3 розряди

ASL.L D0, D6 ; Зсув ліворуч довгого слова у регістрі D6 на

; кількість розрядів , вказану у D0

ASR (-2, A3, D2, L) ; Зсув праворуч на 1 розряд слова, яке

; зберігається у комірках пам’яті , ефективна

; адреса першої вказана за типом “непряма

; регістрова адресація зі зміщенням та

; індексуванням” та наступною

При арифметичному та логічному зсувах ліворуч за допомогою команд ASL та LSL молодші розряди операнда, які звільнюються, заповнюються нулями. При арифметичному зсуві праворуч за допомогою команди ASR старші розряди операнда, які звільнюються, заповнюються значенням його старшого (знакового) розряду. Це дозволяє зберегти значення знака та форми подання операнда (двійковий код або доповняльний код). При логічному зсуві праворуч за командою LSR старші розряди операнда заповняються нулями. При виконанні команди ASL значення V = 1 встановлюється, якщо відбулося хоча б одне змінення знакового розряду при кількох зсувах. При виконанні команди ASR старший розряд не змінюється . При виконанні усіх видів циклічних зсувів останній розряд операнда, що він висувається , зберігається як прапорець С.