Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура

реклама

 




Мероприятия:




Регистры CPU08

На Рис.1 показаны пять регистров CPU08. Регистры CPU08 не входят в карту памяти CPU.

  • A - Аккумулятор (Accumulator)
  • H:X - Индексный регистр (Index Register)
  • SP - Указатель стека (Stack Pointer)
  • PC - Счетчик команд (Program Counter)
  • CCR - Регистр кодов признаков (Condition Code Register)
    • V - Флаг переполнения дополнения до двух (Two's Complement Overflow Flag)
    • H - Флаг полупереноса (Half-Carry Flag)
    • I - Маска прерывания (Interrupt Mask)
    • N - Флаг отрицательного значения (Negative Flag)
    • Z - Флаг нулевого значения (Zero Flag)
    • C - Флаг займа/переноса (Carry/Borrow Flag)

Программная модель CPU08

Рис. 1. Программная модель CPU08

Аккумулятор

Аккумулятор, показанный на Рис.2, является 8-разрядным регистром общего назначения. CPU использует аккумулятор для сохранения операндов и результатов арифметических и неарифметических операций.

Аккумулятор

Рис. 2. Аккумулятор (A)

Индексный регистр

16-разрядный индексный регистр, показанный на Рис.3, позволяет пользователю индексировать или адресовать 64-килобайтовое адресное пространство. Состоящий из двух байтов 16-разрядный регистр обозначается H:X. Младший байт индексного регистра обозначается X и старший байт имеет обозначение H. При сбросе байт H очищается. При H = 0 и отсутствии команды, активирующей использование байта H, регистр H:X функционально идентичен регистру IX семейства M6805.

В режимах индексной адресации CPU использует содержимое регистра H:X для определения фактического адреса операнда. Регистр H:X может быть использован для временного сохранения данных. См. подразделы: Индексный без смещения, Индексный с 8-разрядным смещением и Индексный с 16-разрядным смещением.

Индексный регистр

Рис. 3. Индексный регистр (H:X)

Указатель стека

Указатель стека, показанный на Рис. 4, является 16-разрядным регистром, в котором содержится адрес следующей ячейки стека. В обеспечение совместимости с семейством M6805 во время сброса указатель стека устанавливается в состояние $00FF.

Примечание: Команда RSP устанавливает младший байт в состояние $FF и не воздействует на старший байт.

Адрес в указателе стека декрементируется по каждому занесению данных в стек и инкрементируется по каждому извлечению данных из стека. SP всегда указывает положение готового (пустого) байта стека.

CPU работает в режимах адресации указателя стека с 8- и 16-разрядным смещением, что позволяет использовать указатель стека в качестве индексного регистра для обращения к временным переменным в стеке. CPU использует содержимое регистра SP для определения фактического адреса операнда. См. подразделы По указателю стека с 8-разрядным смещением, и По указателю стека с 16-разрядным смещением.

Указатель стека

Рис. 4. Указатель стека (SP)

Примечание: Хотя предустановленным значением является значение $00FF, размещение стека является произвольным и может быть изменено пользователем на любое, которое RAM занимает в карте памяти. Перемещение SP за пределы страницы 0 (от $0000 до $00FF) высвобождает адресное пространство, к которому можно обращаться используя эффективный режим прямой адресации.

Счетчик команд

Счетчик команд, показанный на Рис. 5, является 16-разрядным регистром, который содержит адрес следующей выбираемой команды или операнда.

Обычно адрес в счетчике команд, по каждой выборке команды или операнда, автоматически инкрементируется к последующей ячейке памяти. Операции переходов, ветвлений и прерываний загружают счетчик команд другими адресами, отличными от тех, которые соответствуют последующей ячейке памяти.

Во время сброса счетчик команд загружается содержимым вектора сброса, размещенным по адресам $FFFE и $FFFF, определяющим первую команду, которая будет выполняться по завершению состояния сброса.

Счетчик команд

Рис. 5. Счетчик команд (PC)

Регистр кодов признаков

8-разрядный регистр кодов признаков, представленный на Рис.6, содержит маску прерывания и пять флагов, которые указывают на результат выполненной операции. Биты пятый и шестой постоянно в состоянии логической 1. В следующем подразделе описывается функционирование регистра кодов признаков.

Регистр кодов признаков

Рис. 6. Регистр кодов признаков (CCR)

V - Флаг переполнения

CPU устанавливает флаг переполнения в том случае, когда в результате операции возникает переполнение дополнения до двух. Флаг переполнения используется командами переходов со знаком BGT, BGE, BLE и BLT. Флаг устанавливается командами ASL, ASR, LSL, LSR, ROL и ROR, хотя его значение, в данном случае, не имеет смысла.

H - Флаг полупереноса

CPU устанавливает флаг полупереноса в том случае, когда в результате операции ADD или ADC возникает перенос между битами 3 и 4 аккумулятора. Флаг полупереноса используется в операциях двоично-десятичной арифметики. Состояния флагов H и C используются командой DAA для определения соответствующего корректирующего фактора.

I - Маска прерывания

При установленной маске прерывания все прерывания запрещаются и разрешаются только тогда, когда маска прерывания очищена. При обработке прерывания маска прерывания автоматически устанавливается после сохранения регистров CPU в стеке но прежде, чем будет выбран вектор прерывания.

Примечание: Для обеспечения совместимости с M6805 регистр H автоматически в стек не заносится. Если подпрограмма обработки прерывания использует X (и H, если он не очищен), то пользователь должен заносить в стек и извлекать из стека содержимое H, используя внутри подпрограммы команды PSHH и PULH.

Запрос на прерывание, поступивший в то время, когда маска прерывания установлена, фиксируется и обрабатывается, в соответствии с приоритетом, сразу после того, как бит I будет очищен.

Команда возврата из прерывания (RTI) извлекает из стека состояния регистров CPU, восстанавливая маску прерывания до ее очищенного состояния. После каждого сброса маска прерывания устанавливается и может быть очищена только командой программы. См. подраздел Сбросы и прерывания.

N - Флаг отрицательного значения

CPU устанавливает флаг отрицательного значения в том случае, когда результатом арифметической, логической операций или операции манипулирования данными становится отрицательный результат.

Z - Флаг нулевого значения

CPU устанавливает флаг нулевого значения в том случае, когда результатом арифметической, логической операций или операции манипулирования данными становится результат $00.

C - Флаг займа/переноса

CPU устанавливает флаг займа/переноса в том случае, когда в результате операции сложения происходит перенос бита 7 аккумулятора или когда в результате операции вычитания необходимо произвести заем. Ряд команд логических операций и манипулирования данными очищают или устанавливают флаг займа/переноса (такие команды, как тестирования бита и ветвления, сдвига и вращения).


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники