Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_Вычисл техн и микропроц_2 автора_130709.doc
Скачиваний:
9
Добавлен:
07.05.2019
Размер:
5.26 Mб
Скачать

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

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

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

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

ANDI #$FBFB,SR ; Задання маски переривань відповідно до

; рівня 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) ; Зсув праворуч на один розряд слова, яке

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

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

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

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

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