В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > 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. Команды перемещения данных память-память

Мнемоника Команда
MOV Переместить непосредственный операнд в прямоадресуемую ячейку памяти (Move Immediate Operand to Direct Memory Location)
MOV Переместить прямоадресуемый операнд в другую прямоадресуемую ячейку памяти (Move Direct Memory Operand to Another Direct Memory Location)
MOV Переместить индексированный операнд в прямоадресуемую ячейку памяти (Move Indexed Operand to Direct Memory Location)
MOV Переместить прямоадресуемый операнд в индексированную ячейку памяти (Move Direct Memory Operand to Indexed Memory Location)


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





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