Контрольная работа: Арифметико-логическое устройство (АЛУ). Регистр PSW
АЛУ представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций, а также операции логического сдвига, обнуления, установки и т. п.
АЛУ состоит из регистра аккумулятора, регистра временного хранения, ПЗУ констант, сумматора, дополнительного регистра (регистра В), аккумулятора, регистра состояния программы.
Регистр аккумулятора и регистр временного хранения — восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Программно не доступны.
ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.
Параллельный восьмиразрядный сумматор представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций сложения, умножения, неравнозначности и тождественности.
Регистр В — восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.
Аккумулятор представляет собой восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций пересылки.
Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра PSW и назначение разрядов приведены соответственно в таблицах 1, 2.
Флаг переноса CY может устанавливаться и сбрасываться как аппаратными, так и программными средствами. Флаг CY может быть программно прочитан. Аппаратными средствами флаг CY устанавливается, если в старшем бите результата возникает перенос или заем. При выполнении операций умножения и деления флаг CY сбрасывается. Кроме того, флаг CY выполняет функции "булева аккумулятора" в командах, работающих с битами.
Флаг дополнительного переноса АС программно доступен по записи ("0" и "1") и чтению.
Флаги F0, RS1, RS0 программно доступны по записи ("0" и "1") и чтению.
Флаг переполнения OV программно доступен по записи ("0" и "1") и чтению. Устанавливается аппаратно, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV аппаратно сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV аппаратно устанавливается, если результат больше 255.
Флаг Р является дополнением содержимого аккумулятора до четности. В 9-разрядном слове, состоящем из 8 разрядов аккумулятора и бита Р, всегда содержится четное число единичных битов. В случае, если в аккумуляторе все разряды установлены в "0", флаг Р примет нулевое значение. Программно доступен только по чтению.
Таймеры/счетчики (Т/С) предназначены для подсчета внешних событий, для получения программно управляемых временных задержек и выполнения времязадающих функций ОМЭВМ.
В состав блока Т/С входят:
1) два 16-разрядных регистра Т/С 0 и Т/С 1;
2) восьмиразрядный регистр режимов Т/С (TMOD);
3) восьмиразрядный регистр управления (TCON);
4) схема инкремента;
Таблица 1
Биты | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Обозначе-ние | CY | AC | F0 | RSI | RS0 | 0V | - | P |
Таблица 2
Биты | Наиме-нов. | Назначение битов | Доступ к биту | |
7 | CY | Флаг переноса. Изменяется во время выполнения некоторых арифметических и логических инструкций. | аппаратно или программно | |
6 | AC | Флаг дополнительного переноса. Аппаратно устанавливается /сбрасывается во время выполнения инструкций сложения или вычитания для указания переноса или заёма в бите 3 при образовании младшего полубайта результата (D0-D3). | аппаратно или программно | |
5 | F0 | Флаг 0. Флаг состояния определяемый пользователем. | программно | |
4 | RSI | Указатель банка рабочих регистров | программно | |
3 | RS0 | Указатель банка рабочих регистров | программно | |
RSI | RS0 | |||
0 | 0 | Банк 0 с адресами (00Н - 07Н) | ||
0 | 1 | Банк 1 с адресами (08Н - 0FH) | ||
1 | 0 | Банк 2 с адресами (10Н - 17Н) | ||
1 | 1 | Банк 3 с адресами (18Н - IFH) | ||
2 | OV | Флаг переполнения. Аппаратно устанавливается/сбрасывается во время выполнения арифметических инструкций для указания состояния переполнения | аппаратно или программно | |
1 | — | Резервный. Содержит триггер, доступный по записи ("0" и "1") и чтению, который можно использовать | ||
0 | P | Бит четности. Аппаратно сбрасывается/устанавливается в каждом цикле инструкций для указания четного/нечетного количества разрядов аккумулятора, находящихся в состоянии "1". | аппаратно или программно |
5) схема фиксации INT0, INT1, Т0, Т1;
6) схема управления флагами;
7) логика управления Т/С.
Два 16-разрядных регистра Т/С 0 и Т/С 1 выполняют функцию хранения содержимого счета. Каждый из них состоит из пары восьмиразрядных регистров, соответственно ТН0, TL0 и TH1, TL1. Причем регистры ТН0, ТН1 — старшие, а регистры TL0, TL1 — младшие 8 разрядов. Каждый из восьмиразрядных регистров имеет свой адрес и может быть использован как РОН, если Т/С не используются (бит TR0 для Т/С 0 и бит TR1 для Т/С 1 в регистре управления TCON равны "0").
Код величины начального счета заносится в регистры Т/С программно. В процессе счета содержимое регистров Т/С инкрементируется. Признаком окончания счета, как правило, является переполнение регистра Т/С, т. е. переход его содержимого из состояния "все единицы" в состояние "все нули". Все регистры ТН0, ТН1, TL0, TLI доступны по чтению, и, при необходимости, контроль достижения требуемой величины счета может выполняться программно.
Регистр режимов Т/С (TМOD) предназначен для приема и хранения кода, определяющего:
— один из 4-х возможных режимов работы каждого Т/С;
— работу в качестве таймеров или счетчиков;
--> ЧИТАТЬ ПОЛНОСТЬЮ <--