Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Встроенные КС лаб раб испр.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
17 Мб
Скачать
☆

1.4 Арифметико-логічний пристрій (алп). Регістр psw

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

АЛП складається з регістру акумулятора, регістру тимчасового зберігання, ПЗУ констант, суматора, додаткового регістру (регістру В), акумулятора, регістру стану програми.

Регістри акумулятора і тимчасового зберігання — восьмирозрядні регістри, призначені для приймання і зберігання операндів на час виконання операцій над ними. Програмно не доступні.

ПЗУ констант забезпечує створення коригувального коду при двоїчно-десятковому представленні даних, коду маски при бітових операціях і коду констант.

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

Регістр В — восьмирозрядний регістр, використовуємий під час операцій множення і ділення. Для інших інструкцій він може розглядатися як додатковий надоперативний регістр.

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

Регістр стану програми (PSW) призначений для зберігання інформації про стан АЛП при виконанні програми. Позначення розрядів регістру PSW і призначення розрядів наведені відповідно в таблиці 1.5.

Прапор переносу CY може встановлюватися і скидатися як апаратними, так і програмними засобами. Прапор CY може бути програмно прочитаний. Апаратними засобами прапор CY встановлюється, якщо в старшому біті результату виникає перенос або позика. При виконанні операцій множення і розподілу прапор CY скидається. Крім того, прапор CY виконує функції "булевого акумулятора" у командах, що працюють із бітами.

Прапор додаткового переносу АС програмно доступний по запису ("0" і "1") і читанню.

Прапори F0, RS1, RS0 програмно доступні по запису ("0" і "1") і читанню. Прапор переповнення OV програмно доступний по запису ("0" і "1") і читанню. Встановлюється апаратно, якщо результат операції додавання/вирахування не укладається в семи бітах і старший (восьмий) біт результату не може інтерпретуватися як знаковий. При виконанні операції розподілу прапор OV апаратно скидається, а у випадку розподілу на нуль встановлюється. При множенні прапор OV апаратно встановлюється, якщо результат більше 255.

Прапор Р є доповненням вмісту акумулятора до парності. В 9-розрядному слові, що полягає з 8 розрядів акумулятора і біта Р, завжди втримується парне число одиничних бітів. У випадку, якщо в акумуляторі всі розряди встановлені в "0", прапор Р прийме нульове значення. Програмно доступний тільки по читанню.

У таблиці 1.5 приводиться перелік прапорів ФССП, даються їхні символічні імена і описуються умови їх формування. Особливості програмування регістрів наведено в [1,3].

Таблиця 1.5 - Формат слова стану програми (ФССП)

Символ

Позиція/№ біта

Ім'я і призначення

CY

PSW.7

Прапор переносу. Встановлюється і скидається при виконанні арифметичних і логічних операцій

AC

PSW.6

Прапор допоміжного переносу. Встановлюється і скидається при виконанні команд додавання і вирахування і сигналізує про перенос або позику в біті 3

F0

PSW.5

Прапор 0. Може бути встановлений, скинутий або перевірений програмою як прапор, специфікуємий користувачем

RS1

RS0

PSW.4

PSW.3

Вибір банку регістрів. Встановлюється і скидається програмою для вибору робочого банку регістрів

0V

PSW.2

Прапор переповнення. Встановлюється і скидається при виконанні арифметичних операцій

-

PSW.1

Не використовується

P

PSW.0

Прапор паритету. Встановлюється і скидається в кожному циклі команди і фіксує непарне/парне число одиничних біт в акумуляторі

Примітка

RS1

RS0

Банк

Границі адрес

0

0

0

00H-07H

0

1

1

08H-0FH

1

0

2

10H-17H

1

1

3

18H-1FH