Арифметико-логическое устройство (АЛУ). Регистр 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
Наиме-нов.
Назначение битов
Доступ к биту
Флаг переноса. Изменяется во время выполнения некоторых арифметических и логических инструкций.
аппаратно или программно
Флаг дополнительного переноса. Аппаратно устанавливается /сбрасывается во время выполнения инструкций сложения или вычитания для указания переноса или заёма в бите 3 при образовании младшего полубайта результата (D0-D3).
Флаг 0. Флаг состояния определяемый пользователем.
программно
Указатель банка рабочих регистров
Банк 0 с адресами (00Н - 07Н)
Банк 1 с адресами (08Н - 0FH)
Банк 2 с адресами (10Н - 17Н)
Банк 3 с адресами (18Н - IFH)
OV
Флаг переполнения. Аппаратно устанавливается/сбрасывается во время выполнения арифметических инструкций для указания состояния переполнения
--
Резервный. Содержит триггер, доступный по записи ("0" и "1") и чтению, который можно использовать
Бит четности. Аппаратно сбрасывается/устанавливается в каждом цикле инструкций для указания четного/нечетного количества разрядов аккумулятора, находящихся в состоянии "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-х возможных режимов работы каждого Т/С;
-- работу в качестве таймеров или счетчиков;
-- управление Т/С от внешнего вывода.
Обозначение разрядов регистра TMOD приведено в таблице 3. Назначение разрядов регистра TMOD приведено в таблице 4.
Таблица 3
Обозн.
GATE1
С/T1
Ml.l
M0.1
GATE0
C/T0
M1.0
M0.0
Таблица 4
Наименование
М0-М1
0-1
Определяют один из 4-х режимов работы, отдельно для Т/С 1 и Т/С в
Все биты устанавливаются программно; биты 0-3 определяют
4-5
М1
М0
Режим
режим работы Т/С в 0
режим работы Т/С 1.
2,6
С/Т 0
Определяют работу в качестве:
С/Т 1
С/Т 0, С/Т 1 = 0 - таймера
С/Т 0, С/Т 1 = 1 - счетчика
3,7
GATE
Разрешает управлять таймером от внешнего вывода (INT0 - для Т/С 0, INT1 - для Т/С 1). GATE = 0 - управление запрещено GATE = 1 - управление разрешено
Страницы: 1, 2