Команды пересылки данных
Как было рассмотрено ранее, арифметические и логические команды могут быть выполнены только над содержимым регистра аккумулятора, поэтому исключительно важное значение в системе команд приобретают команды пересылки данных. С помощью этих команд можно скопировать содержимое любой ячейки памяти в регистр-аккумулятор или наоборот скопировать содержимое аккумулятора в любую ячейку памяти. Так как в микроконтроллере присутствует три независимых области памяти, то для обращения к ним введены различные команды:
- копирование данных во внутреннем ОЗУ: ;
- обмен данными аккумулятора с внутренним ОЗУ: ,
- копирование из внешней памяти данных:
- копирование данных из памяти программ:
Примеры использования команд пересылки данных:
Любая ячейка 256- байтового блока внутреннего ОЗУ данных может быть выбрана с использованием косвенно-регистровой адресации через регистры указатели R0 и R1 (выбранного банка рабочих регистров):
;Скопировать число из ячейки памяти с адресом, хранящемся в R0, в аккумулятор ;Скопировать число из аккумулятора, в ячейку памяти с адресом, хранящемся в R1Команды пересылки с прямой адресацией между ячейками памяти позволяют заносить содержимое порта в ячейку внутреннего ОЗУ или обмениваться содержимым ячеек внутреннего ОЗУ между собой без использования аккумулятора:
;Скопировать содержимое 25-й ячейки в 15-ю ячейкуТаблицы символов (кодов), записанные в ПЗУ программы могут быть скопированы в аккумулятор с помощью команд передачи данных с :
;Скопировать символ в аккумуляторЯчейка адресного пространства 64 Кбайт внешнего ОЗУ также может быть выбрана с использованием адресации через регистр указатель данных DPTR:
;Скопировать число из внешней ячейки памяти с адресом, ;хранящемся в DPTR, в аккумуляторСодержимое аккумулятора может быть обменено с содержимым рабочих регистров выбранного банка:
A, R0.Кроме того, любой бит с может быть скопирован в бит переноса и наоборот:
C, AdrBit