Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура |
|
||||||||||||
Регистры CPU08На Рис.1 показаны пять регистров CPU08. Регистры CPU08 не входят в карту памяти CPU.
Рис. 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, хотя его значение, в данном случае, не имеет смысла. CPU устанавливает флаг полупереноса в том случае, когда в результате операции ADD или ADC возникает перенос между битами 3 и 4 аккумулятора. Флаг полупереноса используется в операциях двоично-десятичной арифметики. Состояния флагов H и C используются командой DAA для определения соответствующего корректирующего фактора. I - Маска прерыванияПри установленной маске прерывания все прерывания запрещаются и разрешаются только тогда, когда маска прерывания очищена. При обработке прерывания маска прерывания автоматически устанавливается после сохранения регистров CPU в стеке но прежде, чем будет выбран вектор прерывания. Примечание: Для обеспечения совместимости с M6805 регистр H автоматически в стек не заносится. Если подпрограмма обработки прерывания использует X (и H, если он не очищен), то пользователь должен заносить в стек и извлекать из стека содержимое H, используя внутри подпрограммы команды PSHH и PULH. Запрос на прерывание, поступивший в то время, когда маска прерывания установлена, фиксируется и обрабатывается, в соответствии с приоритетом, сразу после того, как бит I будет очищен. Команда возврата из прерывания (RTI) извлекает из стека состояния регистров CPU, восстанавливая маску прерывания до ее очищенного состояния. После каждого сброса маска прерывания устанавливается и может быть очищена только командой программы. См. подраздел Сбросы и прерывания. N - Флаг отрицательного значенияCPU устанавливает флаг отрицательного значения в том случае, когда результатом арифметической, логической операций или операции манипулирования данными становится отрицательный результат. CPU устанавливает флаг нулевого значения в том случае, когда результатом арифметической, логической операций или операции манипулирования данными становится результат $00. CPU устанавливает флаг займа/переноса в том случае, когда в результате операции сложения происходит перенос бита 7 аккумулятора или когда в результате операции вычитания необходимо произвести заем. Ряд команд логических операций и манипулирования данными очищают или устанавливают флаг займа/переноса (такие команды, как тестирования бита и ветвления, сдвига и вращения).
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|