Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Команда MOV DPTR, #data16






Команда “загрузить указатель данных 16- битовой константой” загружает указатель данных DPTR 16-битовой константой, указанной во втором и третьем байтах команды. Второй байт команды загружается в старший байт указателя данных (DPH), а третий байт — в младший байт указателя данных (DPL). Эта команда на флаги не влияет и является единственной командой, которая одновременно загружает 16 бит данных.

 

1) Ассемблер: Код: Время: Алгоритм:   Пример:   MOV DPTR, #< data16> 10010000 #data [15-8] #data [7-0] 2 цикла (DPTR): = #data [15-8], причем DPH: = #data [15-8], DPL: = #data [7-0] ; (DPTR)=01FDh MOV DPTR, #1234h; (DPTR)=1234h ; (DPH)=12h ; (DPL)=34h  

 

Команда MOVC A, @A+(< R16>)

< R16> --16-разрядныйрегистр.

Команда “переслать байт из памяти программ” загружает аккумулятор байтом кода или константой из памяти программы. Адрес считываемого байта вычисляется как сумма 8-битового исходного содержимого аккумулятора без знака и содержимого 16-битового регистра. В качестве 16-битового регистра может быть:

1) указатель данных DPTR,

2) счетчик команд PC.

В случае, когда используется PC, он увеличивается до адреса следующей команды перед тем, как его содержимое складывается с содержимым аккумулятора. 16-битовое сложение выполняется так, что перенос из младших восьми бит может распространяться через старшие биты. Эта команда на флаги не влияет.

 

1) Ассемблер: Код: Время: Алгоритм:   Пример:   MOVС A, @A+DPTR 2 цикла (A): =((A)+ (DPTR))   ; (A)=1BH, ; (DPTR)=1020H ; (ПЗУ[103B])=48H MOVС A, @A+DPTR; (A)=48H ; (DPTR)=1020H  

 

2) Ассемблер: Код: Время: Алгоритм:   Пример:   MOVС A, @A+PC 2 цикла (A): =((A)+ (PC))   ; (A)=FAH, ; (PC)=0289H ; (ПЗУ[0384])=9BH MOVС A, @A+DPTR; (A)=9BH ; (PC)=028AH  

 

Команда MOVX < байт приемника>, < байт источника>

Команда “переслать во внешнюю память (из внешней памяти) данных” пересылает данные между аккумулятором и байтом внешней памяти данных. Имеется два тира команд, которые отличаются тем, что обеспечивают 8-битовый или 16-битовый косвенный адрес к внешнему ОЗУ данных.

В первом случае содержимое R0 или R1 в текущем банке регистров обеспечивает 8-битовый адрес, который мультиплексируется с данными порта Р0. Для расширения дешифрации ввода-вывода или адресации небольшого массива ОЗУ достаточно восьми бит адресации. Если применяются ОЗУ, немного больше чем 256 байт, то для фиксации старших битов адреса можно использовать любые другие выходы портов, которые переключаются командой, стоящей перед командой MOVX.

Во втором случае, при выполнении команды MOVX указатель данных DPTR генерирует 16-битовый адрес. Порт Р2 выводит старшие 8 бит адреса (DPH), а порт Р0 мультиплексирует младшие 8 бит адреса (DPL) c данными.

Эта форма является эффективной при доступе к большим массивам данных (до 64К), так как для установки портов вывода не требуется дополнительных команд.

 

1) Ассемблер: Код: Время: Алгоритм:   Пример:   MOVX A, @Ri; где i=0, 1 1110001i 2 цикла (A): =((Ri))   ; (A)=32H, ; (R0)=83H, ; ячейка внешнего ОЗУ по адресу 83H содержит B6H ; (ПЗУ[103B])=48H MOVX A, @R0 (A)=B6H ; (R0)=83H  
2) Ассемблер: Код: Время: Алгоритм:   Пример:   MOVX A, @DPTR 2 цикла (A): =((DPTR))   ; (A)=5CH, ; (DPTR)=1ABEH, ; ячейка ОЗУ по адресу 1ABEH содержит 72H  

 

Команда ORL < байт назначения>, < байт источника>

Команда «логическое «ИЛИ» для переменных-байтов» выполняет операцию логического «ИЛИ» над битами указанных переменных, записывая результат в байт назначения. Эта команда на флаги не влияет. Допускается 6 комбинаций режимов адресации:

· если байтом назначения является аккумулятор:

1) регистровый

2) прямой

3) косвенно-регистровый

4) непосредственный

· если байтом назначения является прямой адрес:

5) к аккумулятору

6) к константе

 

1) Ассемблер: ORL A, Rn; где n=0-7
Код: 01001 rrr, где rrr=000-111
Время: 1 цикл
Пример: ; (A)=15H, (R5)=6CH ORL A, R5; (A)=7DH, (R5)=6CH  
2) Ассемблер: ORL A, < direct>
Код: 01000101 direct adress
Время: 1 цикл
Пример: ; (A)=84H, (PSW)=C2H ORL A, PSW; (A)=C6H, (PSW)=C2H  
3) Ассемблер: ORL A, @Ri; где i=0, 1
Код: 0100011i
Время: 1 цикл
Пример: ; (A)=52H, (R0)=6DH, (ОЗУ[6D])=49H ORL A, @R0; (A)=5BH, (ОЗУ[6D])=49H  
4) Ассемблер: ORL A, #< data>
Код: 01000100 #data8
Время: 1 цикл
Пример: ; (A)=F0H ORL A, #0AH; (A)=FAH  
5) Ассемблер: ORL (direct), A
Код: 01000010 direct adress
Время: 1 цикл
Пример: ; (A)=34H, (IP)=23H ORL IP, A; (IP)=37H, (A)=34H  
6) Ассемблер: ORL (direct), #< data>
Код: 01000011 direct adress #data8
Время: 2 цикла
Пример: ; (P1)=00H ORL P1, #0C4H; (P1)=11000100B (C4H)





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.