Status Register (SREG)
Время выполнения команд.
Статическое ОЗУ данных
На рис.4.3 показана организация памяти данных в AT90S8535.
Регистровый файл | Область адресов данных | |
R0 | $00 | |
R1 | $01 | |
… | … | |
R30 | $1E | |
R31 | $1F | |
Регистры вв./выв | ||
$00 | $20 | |
$00 | $21 | |
… | … | |
$3E | $5E | |
$3F | $5F | |
ОЗУ пользователя | Встроенное ОЗУ | |
$60 | ||
$61 | ||
… | ||
$DE | ||
$DF |
Рисунок 4.3 – Организация ОЗУ в AT90S8535
224 ячейки памяти включают в себя регистровый файл, память ввода/вывода и статическое ОЗУ данных. Первые 96 адресов используются для регистрового файла и памяти ввода/вывода, следующие 128 - для ОЗУ данных.
При обращении к памяти используются пять различных режимов адресации: прямой, непосредственный со смещением, непосредственный, непосредственный с предварительным декрементом и непосредственный с постинкрементном. Регистры R26..R31 регистрового файла используются как указатели для непосредственной адресации.
Прямая адресация имеет доступ ко всей памяти данных.
Непосредственная адресация со смещением используется для доступа к 63 ячейкам базовый адрес которых задается содержимым регистров Y или Z.
Для непосредственной адресации с инкрементом и декрементом адреса используются адресные регистры X, Y и Z.
При помощи любого из этих режимов производится доступ ко всем 32 регистрам общего назначения, 64 регистрам ввода/вывода и 128 ячейкам ОЗУ.
ЦПУ процессора AVR управляется системной частотой, генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.
В процессоре организован буфер команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на МГц, уникальных показателей стоимости, быстродействия и потребления процессора.
4.7 Пространство ввода/вывода
Все устройства ввода/вывода и периферийные устройства AT90S8535 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам $00..$1F можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS.
При использовании специальных команд IN, OUT, SBIS и SBIC, должны использоваться адреса $00..$3F. При доступе к регистру ввода/вывода как к ячейке ОЗУ, к его адресу необходимо добавить $20. В приведенной выше таблице адреса регистров в памяти данных приведены в скобках. Информация по пространству ввода вывода микроконтроллера AT90S8535 приведена в приложении А.
Бит $3F($5F) R/W Нач. знач. | SREG | ||||||||
I | T | H | S | V | N | Z | C | ||
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | ||
Рисунок 4.4 – Регистр состояния SREG
Бит 7 – I (Global Interrupt Enable). Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными прерываниями производится регистрами маски прерываний – GIMSK и TIMSK, а также отдельными битами разрешения прерыванийдругих регистров. Если флаг I сброшен (0), независимо от состояния других разрешающих битов, прерывания не разрешены (рис.4.5). Бит I очищается аппаратно после входа в прерывание и восстанавливается командой RETI, для разрешения обработки следующих прерываний. Разработчик может программно запретить (сбросив в ноль командой CLI) или разрешить (выставив в единицу командой SEI) прерывания.
Бит 6 – T (Bit Copy Storage). Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и приемник обрабатываемого бита. Бит из регистра регистрового файла может быть скопирован в T командой BST, бит T может быть скопирован в бит регистрового файла командой BLD. Бит может быть использован разработчиком для организации быстрых переходов с использованием команд BRTC или BRTS.
Бит 5 - H (Half-carry Flag). Флаг половинного переноса. Этот флаг выставляется в единицу, когда после выполнения очередной команды происходит перенос из младшей половины байта (биты 0-3) при некоторых арифметических операциях. Более подробно об этом можно прочитать в описании системы команд.
Рисунок 4.5 – Система прерываний AT90S8535
Бит 4 – S (Sign Bit). Бит знака, S = N XOR V. Бит S всегда равен исключающему ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух). Более подробно об этом можно прочитать в описании системы команд.
Бит 3 – V (Two’s Complement Overflow Flag). Флаг переполнения дополнения до двух. Этот флаг поддерживает арифметику с дополнением до двух. Более подробно об этом можно прочитать в описании системы команд.
Бит 2 – N (Negative Flag). Флаг отрицательного результата. Этот флаг выставляется в единицу, когда в АЛУ после выполнения очередной команды получается отрицательный результат. Более подробно об этом можно прочитать в описании системы команд.
Бит 1 – Z (Zero Flag). Флаг нулевого результата. Этот флаг выставляется в единицу, когда после выполнения очередной команды в АЛУ получается ноль. Более подробно об этом можно прочитать в описании системы команд.
Бит 0 – C (Carry Flag). Флаг переноса. Этот флаг индицирует перенос в арифметических и логических операциях из бита 7. Более подробно об этом можно прочитать в описании системы команд.