Студопедия

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

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

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






Команды перемещения данных






Эта группа представлена 28 командами, их краткое описание приведено в табл. 4, где также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Основная команда группы MOV (Mov e – перемещение) осуществляет пересылку данных в пределах адресного пространства РПД и РСФ, с различными способами адресации, и команды MOVX (чтение/запись байта из внешней памяти данных) и MOVC (чтение байт из памяти программ). На рис.5 показаны варианты пересылки данных между различными сегментами адресного пространства МК51 с учетом всех способов адресации, которые отражены в табл. 4.

 

 

Рис. 5. Граф перемещения данных в пределах адресного пространства МК51

 

Как видно, центральное место занимает аккумулятор А, на который замыкается большинство пересылок данных, хотя некоторые из пересылок осуществляются и без участия аккумулятора. Большинство пересылок двухсторонние, т.е. в поле операнда можно менять местами операнд приемник и операнд источник данных. Исключение составляют пересылка непосредственного операнда и чтение данных из памяти программ.

Таблица 4

Название команды Мнемокод КОП Т Б Ц Операция
Пересылка в аккумулятор из регистра (n=0÷ 7) MOV A, Rn E8 - EF       (A) (Rn)
Пересылка в аккумулятор прямо-адресуемого байта MOV A, ad E5       (A) (ad)
Пересылка в аккумулятор байта из РПД (i=0, 1) MOV A, @Ri E6 - E7       (A) ((Ri))
Загрузка в аккумулятор константы MOV A, #d         (A) #d
Пересылка в регистр из аккумулятора MOV Rn, A F8 – FF       (Rn) (A)
Пересылка в регистр прямо-адресуемого байта MOV Rn, ad A8 – AF       (Rn) (ad)
Загрузка в регистр константы MOV Rn, #d 78 – 7F       (Rn) #d
Пересылка по прямому адресу аккумулятора MOV ad, A F5       (ad) (A)
Пересылка по прямому адресу регистра MOV ad, Rn 88 – 8F       (ad) (Rn)
Пересылка прямоадресуемого байта по прямому адресу MOV add, ads         (add) (ads)
Пересылка байта из РПД по прямому адресу MOV ad, @Ri 86 – 87       (ad) ((Ri))
Пересылка по прямому адресу константы MOV ad, #d         (ad) #d
Пересылка в РПД из аккумулятора MOV @Ri, A F6 – F7       ((Ri)) (A)
Пересылка в РПД прямо-адресуемого байта MOV @Ri, ad 66 – 67       ((Ri)) (ad)
Пересылка в РПД константы MOV @Ri, #d 76 – 77       ((Ri)) #d
Загрузка указателя данных MOV DPTR, #d16         (DPTR) #d16
Пересылка в аккумулятор байта из ПП MOVC A, @A+DPTR         ((A) +(DPTR))
Пересылка в аккумулятор байта из ПП MOVC A, @A+PC         (PC) (PC)+1, (A) ((A)+(PC))
Пересылка в аккумулятор байта из ВПД MOVX A, @Ri E2 – E3       (A) ((Ri))
Пересылка в аккумулятор байта из расширенной ВПД MOVX A, @DPTR E0       (A) ((DPTR))
Пересылка в ВПД из аккумулятора MOVX @Ri, A F2 – F3       ((Ri)) (A)
Пересылка в расширенную ВПД из аккумулятора MOVX @DPTR, A F0       ((DPTR)) (A)
Загрузка в стек PUSH ad C0       (SP) (SP) + 1, ((SP)) (ad)
Извлечение из стека POP ad D0       (ad) (SP), (SP) (SP) - 1
Обмен аккумулятора с регистром XCH A, Rn C8 – CF       (A) ↔ (Rn)
Обмен аккумулятора с прямо-адресуемым байтом XCH A, ad C5       (A) ↔ (ad)
Обмен аккумулятора с байтом из РПД XCH A, @Ri C6 –C7       (A) ↔ ((Ri))
Обмен младших тетрад аккумулятора и байта РПД XCHD A, @Ri D6 – D7       (A0…3) ↔ ((Ri)0…3)

 

Команда XCH (E xch ange - обмен) используется для обмена операндами между аккумулятором и ячейкой РПД с различными вариантами адресации, а команда XCHD – обмен младшими тетрадами (биты 0 – 3) с косвенной адресацией.

Группа команд - пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода. Доступ к ним, как и к другим регистрам специальных функций, осуществляется заданием соответствующего прямого адреса, т.е. это команды обычных пересылок, в которых вместо адреса можно ставить название соответствующего регистра. Например, чтение PSW в аккумулятор может быть выполнено командой

MOV A, PSW, которая преобразуется ассемблером к виду

MOV А, 0D0h (E5 D0), где Е5 – код операции, а D0 – операнд (адрес PSW).

Кроме того, следует отметить, что в микроЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации:

А – при неявной адресации (например, MOV A, R0) и АСС – при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.

 






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