Professional Documents
Culture Documents
Лаб6
Лаб6
Лабораторна робота №6
З ДИСЦИПЛІНИ
«АРХІТЕКТУРА КОМП’ЮТЕРА»
Резніченко Нікіта
ІБК3-1
Київ
ЛАБОРАТОРНА РОБОТА № 6
2. З безпосередніми
1. Логічні 4. Спеціальні
даними
Мнемоніка Код Мнемоніка Код Мнемоніка Код Мнемонік Код
а
A A7 A B7 ADI # C6 DAA 27
B A0 B B0 ACI # CE CMA 2F
C A1 C B1 SUI # D6 STC 37
ANA D A2 ORA D B2 SBI # DE CMC 3F
«І» E A3 «АБО» E B3 ANI # E6
H A4 H B4 XRI # EE
L A5 L B5 ORI # F6
M A6 M B6 CPI # FE
A AF A BF
B A8 B B8
C A9 C B9 3. Зсув
XRA D AA CMP D BA Мнемоніка Код
« mod 2» E AB «=? » E BB RLC 07
H AC H BC RRC 0F
L AD L BD RAL 17
M AE M BE RAR 1F
Рис. 6.1. Логічні команди МП.
Якщо нема особливих вказівок при описі команди, то команди
впливають на стан прапорців нуля, парності, знаку, переносу і
допоміжного переносу відповідно стандартних правил.
Логічні команди операції «І» над вмістом акумулятора і регістра
(ANA r) розміщують результат операції в регістрі А. При цьому
скидається прапорець переносу C і встановлюється прапорець
допоміжного переносу. Команда займає в пам’яті 1 байт. Зчитування її з
пам’яті виконується за три перші такти циклу M1, а в такті Т4 команда
виконується. Особливість команди ANA M полягає в тому, що операція
«І» виконується з вмістом акумулятора і вмістом вічка пам’яті, адреса
якого розміщена в парі регістрів H, L. Оскільки для зчитування з пам’яті
операнду потрібен додатковий машинний цикл, то команда буде виконана
за сім тактів. Операція «І» також може бути виконана над безпосереднім
операндом за допомогою команди ANI #. Її результат також розміщується
в регістрі акумулятора. Для зчитування команди потрібно два машинних
цикли, або за сім тактів.
При виконанні команди «Виключаюче АБО» (сума за модулем 2)
результат розміщується в акумуляторі. Для цих команд характерна
очистка прапорців переносу і допоміжного переносу. Відрізняють групу
команд XRA r, які виконуються за чотири такти, команду XRA M, що
здійснює операцію над акумулятором і вмістом вічка пам’яті за адресою,
яка міститься в парі регістрів H, L (два цикли, або сім тактів), і команду
безпосередньої операції «Виключаюче АБО» XRI # (два цикли, або сім
тактів). Особливу увагу треба приділити операції XRA A, за допомогою
якої можна очистити акумулятор і прапорці переносу. Команда
використовується програмістами для підготовки акумулятора і прапорців
переносу перед виконанням арифметичних перетворень, коли є
необхідність виконувати аналіз переповнень.
Для формування логічного байту на основі вмісту кількох регістрів
(наприклад, виконання зчеплення бітів) застосовуються команди логічного
додавання («АБО»). Команди ORA r забезпечують логічне додавання
акумулятора з регістром r, причому скидаються прапорці основного та
допоміжного переносів (один цикл і чотири такти). Команди ORA M і
ORI # впливають на тригери переносу аналогічно і виконуються за два
цикли, або сім тактів.
Порівняння вмісту акумулятора і операнду, яким може бути вміст
регістра, вічка пам’яті або безпосередній операнд, робиться командами
порівняння. При виконанні цих команд, якщо операнди рівні, зводиться
тригер нуля (Z=1), а якщо вміст акумулятора менше другого операнду
команди, зводиться регістр переносу (C=1). Команди CMP r порівнюють
акумулятор з регістром (один цикл, чотири такти), CMP M — вміст
акумулятора і вічка пам’яті з адресою, що є в парі регістрів H, L (два
цикли, сім тактів), CMI # — акумулятор з безпосереднім операндом (два
цикли і сім тактів).
Відомо, що арифметичні операції над двійковими словами доцільно
виконувати в зворотному або додатковому коді. Виконання операції
перетворення кодів зручно здійснювати з використанням команди
доповнення акумулятора CMA, при виконанні якої вміст акумулятора
інвертується (біт, що дорівнює 1, стає рівним 0, а біт, що дорівнює 0, стає
рівним 1). Прапорці при виконанні цієї команди не використовуються. Для
її виконання треба один цикл, або чотири такти. Команда входить до
складу спеціальних команд.
До спеціальних команд також відноситься команда, що встановлює
прапорці переносу – STC (C=1), і команда, що доповнює прапорець
переносу – CMC. При виконанні цих команд інші прапорці не
використовуються. На їх виконання витрачається один машинний цикл
М1, або чотири такти.
Часто виникає потреба виконати функцію зсуву вправо або вліво на
один розряд. В системі команд МП КР580ИК80А є по дві команди лівого і
правого зсуву. Зсув вмісту акумулятора вліво RLC і вправо RRC показані
на рис. 6.2. При виконанні цих зсувів використовуються тільки прапорець
переносу С, в якому дублюється вміст старшого або молодшого біту
акумулятора.