Читайте также:
|
|
Несмотря на пересылку данных в неизменном виде, эти команды осуществляют один из способов обработки информации, В качестве примера такой обработки можно привести сортировку. В командах пересылки используется все разнообразие способов адресации данных. Пересылка данных может осуществляться в форматах байта, половины байта, двух байтов и бита.
Команда MOV (MOVe по-английски означает «передвинуть»; далее в аналогичных случаях мы не будем указывать специально, что дается перевод с английского) копирует содержимое источника в приемник (при выполнении этой команды первоначальное содержимое приемника теряется). Перечень возможных команд MOV приведен в табл. 1.
Табл. 1
Содержание команды | Тип адресации | Мнемоника | Операция |
Пересылка в Акк. байтовой конст. | прямая | MOV A,#dat8 | (A)←#dat8 |
Пересылка в рег. Rn байтовой конст. | прямая | MOV Rn,#dat8 | (Rn)←#dat8 |
Пересылка в Акк. содержимого рег. Rn | прямая | MOV A,Rn | (A) ←(Rn) |
Пересылка в рег. Rn содержимого Акк. | прямая | MOV Rn,A | (Rn) ← (A) |
Пересылка в Акк. содержимого ОЗУ по адресу, содерж в рег. Ri (i=0,1) | косвенная | MOV A,@Ri | (A) ←{(Ri)} |
Пересылка в ОЗУ содержимого Акк. по адресу, содерж в рег. Ri (i=0,1) | косвенная | MOV @Ri,A | {(Ri)} ←(A) |
Пересылка в ОЗУ байтовой конст. по адресу, содерж. в рег. Ri (i=0,1) | косвенная | MOV @Ri, #dat8 | {(Ri)} ←#dat8 |
Пересылка в ОЗУ содержимого, содержащегося по адр. dat8 в ячейку с адр., содерж. в рег. Ri (i=0,1) | косвенная | MOV @Ri, dat8 | {(Ri)} ←{dat8} |
Пересылка в ОЗУ содержимого ОЗУ с адр. содерж. в рег. Ri (i=0,1), в ячейку с адресом dat8 | косвенная | MOV dat8,@Ri | {dat8} ←{(Ri)} |
Пересылка в Rn содержимого ОЗУ по адресу dat8 | прямая | MOV Rn,dat8 | (Rn) ←{dat8} |
Пересылка в Акк. содержимого ОЗУ по адресу dat8 | прямая | MOV A,dat8 | (A) ←{dat8} |
Пересылка из Акк. в ОЗУ по адресу dat8 | прямая | MOV dat8,A | {dat8} ←(A) |
Пересылка содерж. Rn в ОЗУ по адресу dat8 | прямая | MOV dat8,Rn | {dat8} ←(Rn) |
Пересылка содерж. из ячейки ОЗУ с адр. 1dat8 в ОЗУ по адресу 2dat8 | прямая | MOV 2dat8,1dat8 | {2dat8}←{1dat8} |
Пересылка в ОЗУ по адр. dat8 конст. # 1dat8 | прямая | MOV dat8,#1dat8 | {dat8} ←#1dat8 |
Пересылка в указатель данных DPTR двухбайтовой конст. | прямая | MOV DPTR,#dat16 | DPTR ←#dat16 |
Для засылки нуля в аккумулятор проще использовать команду очистки CLR (CleaR означает очистить):
CLR A
Чтение и запись данных байтового формата при обращений к внешнему ОЗУ осуществляется при помощи команд MOVX, где буква X, по-видимому, означает eXternal (внешняя память):
Табл. 2
Содержание команды | Тип адресации | Мнемоника | Операция |
Пересылка в акк. байта из вн. ОЗУ из адреса, содерж. в Ri (i=1,2) | косвенная | MOVX A,@Ri | A ←{(Ri)} |
Пересылка в акк. байта из вн. ОЗУ из расширенного двухбайтового адреса, содерж. в DPTR | косвенная | MOVX A,@DPTR | A ←{(DPTR)} |
Пересылка байта во вн. ОЗУ по адресу, содерж. в Ri (i=1,2) из акк. | косвенная | MOVX @Ri,A | {(Ri)} ←A |
Пересылка из акк. байта во вн. ОЗУ по расширенному двухбайтовому адресу, содерж. в DPTR | косвенная | MOVX @DPTR,A | {(DPTR)} ← A |
Перед выполнением этой команды в соответствующий регистр нужнозаписать адрес.
Чтение данных из ПЗУ программ осуществляетсяпри помощикоманды MOVC, притом буква С скорее всего означает Code (программа):
Табл. 3.
Содержание команды | Тип адресации | Мнемоника | Операция |
Пересылка в акк. байта из памяти программ, содержащегося по адресу, представляющего сумму указателя DPTR и акк. | косвенная | MOVC A,@A+DPTR | A ←{(A)+(DPTR)} |
Пересылка в акк. байта из памяти программ, содержащегося по адресу, представляющего сумму прогр. сч. и акк. | косвенная | MOVC A,@A+PC | A ←{(A)+(PC)} |
Эти команды очень удобны для чтения из таблиц, записываемых вПЗУ.
Запись в ОЗУ и чтение из него при помощи стекового способа адресации производятся командами:
Табл. 4
Содержание команды | Тип адресации | Мнемоника | Операция |
Пересылка содержимого ОЗУ с адр. dat8 в стек | Прямая | PUSH dat8 | (SP) ←(dat8) |
Пересылка содержимого стека в ОЗУ с адр. dat8 | Прямая | POP dat8 | (dat8) ←(SP) |
Мнемокоды стековых команд соответствуют английским глаголам «затолкнуть» и «вытолкнуть». Применяются стековые способы в основном при обработке прерываний, переходов в подпрограммы, когда необходимо запомнить текущие состояния регистров.
Существует еще одна команда копирования ХСН (eXCHange означает «обменять»), которая осуществляет обмен содержимого источника и приемника. В принципе обмен можно произвести при помощи трех команд пересылки. Следующие команды делают это за то же время, но занимают меньше места в ПЗУ и не требуют использования дополнительной ячейкиОЗУ:
Табл. 5
Содержание команды | Тип адресации | Мнемоника | Операция |
Обмен акк. с регистром | Прямая | XCH A,Rn | (A)↔(Rn) |
Обмен акк. с байтом, содерж. в ОЗУ по адресу dat8 | Прямая | XCH A,dat8 | (A)↔{dat8} |
Обмен акк. c байтом, содерж. в ОЗУ по адресу находящемуся в рег. Ri (i=1,2) | Косвенная | XCH A,@Ri | (A)↔{(Ri)} |
Обмен мл. тетрады акк. c мл. тетадой, содерж. в ОЗУ по адресу находящемуся в рег. Ri (i=1,2) | Косвенная | XCHD A,@Ri | (A0…A3)↔{(Ri)0…(Ri)3} |
Несколько команд пересылки информации работают в битовом формате, при этом в команде MOV источником или приемником должен быть бит
переноса С, например:
MOV C, Rn.j
MOV Rn.j,C
Для записи констант 0 и 1 используютсякоманды очистки CLR и установки SETB (SETB(it) означает «установить бит»):
CLR C
CLR Rn.j
SETB C
SETB Rn.j
Вес команды пересылки не влияют на содержимое слова состояния программы, за исключением случаев пересылки информации в этот регистр или один из его битов.
Дата добавления: 2015-07-20; просмотров: 78 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Встроенные имена | | | Группа логических команд |