Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие.doc
Скачиваний:
70
Добавлен:
10.11.2019
Размер:
8.13 Mб
Скачать

2.4 Арифметико-логическое устройство и регистр состояния процессора

Арифметико-логическое устройство (ALU) предназначено для выполнения арифметических и логических операций над двоичными восьмиразрядными операндами. Состав ALU: сумматор, комплекты двухвходовых логических элементов И, ИЛИ, НЕ, исключающее ИЛИ по 8 элементов в каждом комплекте и аппаратный умножитель.

Регистр состояния процессора SREG предназначен для хранения признаков (флагов) результатов выполнения операции. Признаки результатов операций используются для организация ветвящихся программ. Кроме того, в регистр SREG включены: бит разрешения всех прерываний и бит копии.

Формат регистра состояния SREG микроконтроллера приведен на рис.5.

I: бит разрешения всех прерываний. Для разрешения прерываний этот бит должен быть установлен (=1). Разрешение конкретного прерывания выполняется регистрами маски прерывания GICR и TIMSK. Если бит I

Регистр coстояния (статуса) SREG

Номер разряда

7

6

5

4

3

2

1

0

Имена битов

I

T

H

S

V

N

Z

C

Рисунок 5

очищен (=0), то ни одно из прерываний не обра­батывается. Бит I аппаратно сбрасывается после входа в процедуру обработки прерывания и устанавливается (разрешая последующие прерывания) командой RETI. Для разрешения вложенных прерываний в обработчике прерываний он должен быть установлен.

Т: бит сохранения копии. В микроконтроллере отсутствует команда пересылки битов, поэтому такая операция выполняется с использованием бита Т т.е. он используется в качестве буфера. Командой BST бит регистра общего назначения копируется в бит Т, командой BLD бит Т копируется в бит регистра общего назначения.

Н: флаг полупереноса. Устанавливается при наличии переноса между тетрадами при выполнении ряда арифметических опера­ций.

S: бит знака представляет собой операцию исключающее ИЛИ (N V) над флагами отрицательного значения (N) и флага переполнения (V) (см. ниже). Флаг устанавливается, если при операции вычитания с учетом знаков первый операнд меньше второго операнда и сбрасывается, если первый операнд больше или равен второму.

V: флаг переполнения устанавливается, если знак результата в операциях со знаковыми операндами не соответствует знакам операндов, т.е. поддерживает арифмети­ку дополнения до двух. Например, при сложении знаковых чисел +100 (01100100) и +50(00110010) получается восьмиразрядный отрицательный результат 10010110 (должно получиться 010010110 т.е. девять разрядов). Восьми разрядов недостаточно для размещения результата.

N: флаг отрицательного значения устанавливается при отрицательном результате арифметических и логических операций, т.е. бит является копией левого (знакового) разряда результата операции.

Z: флаг нулевого значения устанавливается при нуле­вом результате ряда арифметических и логических операций.

С: флаг переноса устанавливается при наличии переноса в арифметических и логических операциях, а также в операциях сдвига.