Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Прямая адресацияБольшинство команд прямой адресации всего двумя байтами способны обращаться к любым первым 256 адресам памяти. Первый байт является операционным кодом и второй байт является младшим байтом адреса операнда. Значение старшего байта действительного адреса принимается равным $00 и не включается в байты команды, что сокращает пространство памяти программ и время выполнения команды. Таким образом прямая адресация ограничивается использованием области памяти с адресами $0000 - $00FF, называемой прямой страницей, или страницей 0. Команды прямой адресации занимают в пространстве памяти программ на один байт меньше, чем эквивалентные команды расширенной адресации. За счет исключения дополнительного обращения к памяти время выполнения команды сокращается на один цикл - что дает существенную экономию в случае длинных программ. Большинство микроконтроллеров занимают под RAM не всю область $0000 - $00FF, что позволяет разработчикам использовать свободные ячейки этой области для размещения наиболее часто используемых переменных, что также сокращает время выполнения команд. Команды BRSET и BRCLR являются трехбайтовыми командами, использующими прямую адресацию для обращения к операндам и относительную адресацию для определения пункта назначения перехода. Команды CPHX, STHX и LDHX являются двухбайтовыми командами, выбирающими 16-разрядные операнды. Старшие байты выбираются прямой адресацией; младшие байты выбираются прямой адресацией + 1
В таблице 5 перечислены команды использующие прямую адресацию. Нижеследующий пример кодов содержит две команды прямой адресации: STHX (сохранить H:X в памяти) и CPHX (сравнить H:X с памятью). Первая команда (STHX) инициализирует установку TEMP ячейки RAM в нулевое состояние и вторая команда (STHX) загружает в ячейку TEMP состояние $5555. Команда CPHX сравнивает содержимое H:X с значением RAM:(RAM + 1). В данном примере RAM:(RAM + 1) = TEMP = $50:$51 = $5555. Машинный код Метка Операция Операнд Комментарий RAM EQU $50 ; Соответствие RAM ROM EQU $6E00 ; Соответствие ROM ORG $RAM ; Начало RAM TEMP RMB 2 ; Резервированные 2 байта ORG $ROM ; Начало ROM 5F START CLRX ; X = 0 8C CLRH ; H = 0 3550 STHX TEMP ; H:X=0 > temp 455555 LDHX #$5555 ;Загрузка H:X содержимым $5555 3550 STHX TEMP ; Temp= $5555 7550 BAD_PART CPHX RAM ; RAM=temp 26FC BNE BAD_PART ; RAM=temp будет оставаться ; неизменным пока не произойдет ; ошибка! 20F1 BRA START ; Снова выполнить то же Таблица 5. Команды прямой адресации
*) - ASL = LSL
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|