Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура |
|
||||||||||||||||||||||
Перемещение данныхПеремещение непосредственных данных в прямую страницуПеремещение непосредственных данных в прямую страницу (MOV imd) является трехбайтовым четырехцикловым режимом, используемым, в общем случае, для инициализации переменных и регистров на прямой странице. Операнд байта, следующего непосредственно за операционным кодом, сохраняется в ячейке прямой страницы, адресованной вторым, следующим за операционным кодом, байтом. Команда MOV, использующая этот режим адресации, не воздействует на содержимое аккумулятора. Приведенный ниже пример показывает, что исключение аккумулятора из процесса пересылки данных сокращает количество рабочих циклов, по сравнению с аналогичными процессами пересылки непосредственных данных на прямую страницу, с 9 циклов до 4. Машинный код Метка Операция Операнд Комментарий *Перемещение данных с использованием аккумулятора B750 (два цикла) PSHA ; Сохранение текущего значения A A622 (два цикла) LDA #$22 ; A = $22 B7F0 (три цикла) STA $F0 ; Сохранение $22 в $F0 B650 (два цикла) PULA ; Восстановление значения A Всего 9 циклов * Перемещение данных без использования аккумулятора 6E22F0 (четыре цикла) MOV #$22, $F0 ; Состояние ячейки $F0 = $22 Перемещение данных из прямой страницы в прямую страницуПеремещение данных из прямой страницы в прямую страницу является трехбайтовым пятицикловым режимом адресации, используемым, в общем случае, для перемещения данных из регистра в регистр в пределах прямой страницы. Операнд в ячейке прямой страницы, адресуемой байтом следующим непосредственно за операционным кодом, сохраняется в ячейке прямой страницы адресованной вторым, следующим за операционным кодом, байтом. Команда MOV, использующая этот режим адресации, не воздействует на содержимое аккумулятора. Как и в предшествовавшем режиме адресации, исключение аккумулятора из процесса пересылки данных сокращает количество циклов выполнения с 10 до 5, по сравнению с аналогичными процессами пересылки данных внутри прямой страницы (см приведенный ниже пример). Такой режим адресации существенно ускоряет выполнение программ с большим количеством пересылок регистр-регистр. Машинный код Метка Операция Операнд Комментарий *Перемещение данных с использованием аккумулятора B750 (два цикла) PSHA ; Сохранение текущего значения A B6F0 (три цикла) LDA $F0 ; Получение содержимого $F0 B7F1 (три цикла) STA $F1 ; Ячейка $F1 = $F0 B650 (два цикла) PULA ; Восстановление значения A Всего 10 циклов * Перемещение данных без использования аккумулятора 4EF0F1 (пять циклов) MOV $F0, $F1 ; Перемещение содержимого $F0 в ; $F1 Перемещение индексированных данных в прямую страницу с постинкрементомПеремещение индексированных данных, адрес ячейки которых указан в индексном регистре, в прямую страницу с постинкрементом индексного регистра (MOV ix+d) является двухбайтовым четырехцикловым режимом адресации используемым, в первую очередь, пересылки таблиц, адресованных индексным регистром, в регистр прямой страницы. Таблицы могут быть расположены в любом месте 64-килобайтовой карты памяти и могут иметь любой размер. Эта команда не воздействует на содержимое аккумулятора. Операнд, адресованный индексным регистром (H:X), сохраняется в ячейке прямой страницы, адресованной байтом, следующим за операционным кодом. После перемещения данных содержимое H:X инкрементируется. Данный режим адресации очень эффективен при пересылке содержимого буфера, организованного в RAM, в регистр последовательной передачи, как это показано на приведенном ниже примере. В таблице 10 перечислены команды пересылок память-память. Примечание: Выполнение команды перемещения индексированных данных в прямую страницу с постинкрементом инкрементирует H, если инкремент происходит при нахождении X в состоянии $FF. В примере показана активируемая прерыванием подпрограмма обслуживания SCI передачи, поддерживающая кольцевой буфер. Машинный код Метка Операция Операнд Комментарий SIZE EQU 16 ; Длина кольцевого буфера RX SCSR1 EQU $16 ; Статус SCI регистра 1 SCDR EQU $18 ; SCI регистр приема данных ORG $70 PTR_OUT RMB 2 ; Указатель отсутствия данных в ; кольцевом буфере PTR_IN RMB 2 ; Указатель наличия данных в ; кольцевом буфере RX_B RMB SIZE ; Кольцевой буфер * *Подпрограмма обработки прерывания заполненного SCI регистра приема данных * ORG $6E00 55 72 RX_INT LDHX PRT_IN ; Загрузка указателя B6 16 LDA SCSR1 ; Пустое считывание SCSR1 как ; сброса RDRF 5E 18 MOV SCDR ,X+ ; Перемещение нового байта из ; SCI регистра данных. Очистка ; RDRF. Постинкремент H:X. 65 00 64 CPHX #RX_B + SIZE ; Закончена выдача кольцевого ; буфера? 23 03 BLS NOLOOP ; Если нет, то продолжить 45 00 54 LDHX #RX_B ; Иначе сброс старта буфера 35 52 NOLOOP STHX PTR_IN ; Сохранение нового значения ; указателя 80 RTI ; Возврат Таблица 10. Команды перемещения данных память-память
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|