Несмотря на пересылку данных в неизменном виде, эти команды осуществляют один из способов обработки информации. В качестве примера такой обработки можно привести сортировку. В командах пересылки используется все разнообразие способов адресации данных. Пересылка данных может осуществляться в форматах байта, половины байта, двух байтов и бита.
Начнем с байтового формата. Команда MOV (MOV e по-английски означает «передвинуть»; далее в аналогичных случаях мы не будем указывать специально, что дается перевод с английского) копирует содержимое источника в приемник (при выполнении этой команды первоначальное содержимое приемника теряется):
MOV A, #src
MOV А, Rn
MOV A, @Ri
MOV A, src
MOV Rn, А
MOV Rn, #src
MOV Rn, src
MOV @Ri, A
MOV @Ri, #src
MOV @Ri, src
MOV dst, A
MOV dst, #src
MOV dst, Rn
MOV dst, @Ri
MOV dst, dst
Для засылки нуля в накопитель проще использовать команду очистки CLR (CleaR означает очистить):
CLR А
Чтение и запись данных байтового формата при обращении к внешнему ОЗУ осуществляется при помощи команд MOVX, где буква X, по-видимому, означает external (внешняя память):
|
|
MOVX A, @Ri
MOVX A, @DPTR
MOVX @Ri, A
MOVX @DPTR, A
Перед выполнением этой команды в соответствующий регистр нужно записать адрес.
Чтение данных из ПЗУ осуществляется при помощи команды MOVC, притом буква С скорее всего означает Code (программа).
MOVC A, @A+DPTR
MOVC А, ©А+РС
Эти команды очень удобны для чтения из таблиц, записываемых в ПЗУ.
Запись в ОЗУ и чтение из него при помощи стекового способа адресации производятся командами
PUSH src
POP dst
Мнемокоды стековых команд соответствуют английским глаголам «затолкнуть» и «вытолкнуть».
Существует еще одна команда копирования ХСН (eXCHange означает «обменять»), которая осуществляет обмен содержимого источника и приемника. В принципе обмен можно произвести при помощи трех команд пересылки. Следующие команды делают это за то же время, но занимают меньше места в ПЗУ и не требуют использования дополнительной ячейки ОЗУ:
ХСН А, Rn
ХСН A, @Ri
ХСН А, src
Есть также команда, обменивающая младшие половины байтов:
XCHD A, @Ri
Здесь D означает Digit (четыре бита используются для двоичного представления десятичной цифры).
Одна из команд пересылки данных записывает два байта в регистр указателя данных:
MOV DPTR, #src
Других команд для явной пересылки двухбайтовых данных нет.
Несколько команд пересылки информации работают в битовом формате, В команде MOV источником или приемником должен быть бит переноса С;
MOV С, flag
MOV flag, С
Для записи констант 0 и 1 используются команды очистки CLR и установки SETB (SET Bit означает «установить бит»):
CLR С
CLR flag
SETB С
SЕТВ flag
Все команды пересылки не влияют на содержимое слова состояния программы, за исключением случаев пересылки информации в этот регистр или один из его битов.