- •Лабораторная работа № 4 Команды передачи данных
- •Цель работы
- •2.Основные теоретические сведения
- •Примеры
- •Примеры
- •Примеры
- •Пример
- •3. Порядок выполнения работы
- •3.1. Исследование команд пересылки с непосредственной и регистровой адресацией
- •3.2. Исследование команд пересылки с прямой адресацией
- •3.3. Исследование команд пересылки с косвенной адресацией
- •3.4. Команды пересылки с использованием регистра dptr
- •3.5. Задания для самостоятельной работы
- •4.Содержание отчета
- •Контрольные вопросы
Пример
MOV A, @R0 ; Переслать в аккумулятор содержимое ячейки ПД, адрес которой
находится в регистре R0.
Во всех рассмотренных выше примерах приемником данных выступал аккумулятор. Однако в качестве приемника могут использоваться регистры, ячейки памяти с прямой или косвенной адресацией. Команды, в которых приемником являются ячейки памяти, часто называют командами запоминания.
В командах МК51 могут использоваться и смешанные виды адресации, например, регистровая и непосредственная
MOV Rn, #d,
прямая и косвенная
MOV ad, @Ri,
а также другие комбинации.
Использование смешанных способов адресации делает систему команд МК51 чрезвычайно гибкой и удобной для программирования.
3. Порядок выполнения работы
3.1. Исследование команд пересылки с непосредственной и регистровой адресацией
Запустите симулятор/отладчик AVSIM51, отключите отображение меток и занесите в память программ коды команд
MOV A, #55H ; Загрузить в аккумулятор число 55H
MOV R1, A ; Переслать в регистр R1 содержимое аккумулятора
MOV R2, #22H ; Загрузить в регистр R2 число 22H
MOV A, R2 ; Переслать содержимое регистра R2 в аккумулятор
NOP ; Пустая команда
Примечание. Команда NOP используется для визуального разделения отдельных программ при проверке их работы.
Исследуйте работу программы в пошаговом режиме. Наблюдайте за изменением содержимого регистров, а также флагами МК.
3.2. Исследование команд пересылки с прямой адресацией
Запишите в память симулятора коды следующих команд
MOV 30H, #11H ; Переслать в ячейку ПД с адресом 30H число 11H
MOV A, 30H ; Переслать в аккумулятор содержимое ячейки ПД с адресом 30H
MOV R1, 30H ; Переслать в регистр R1 содержимое ячейки с адресом 30H
MOV P0, A ; Переслать в порт P0 содержимое аккумулятора
MOV P0, #55H ; Переслать (вывести) в порт P0 число 55H
MOV A, P0 ; Переслать в аккумулятор данные из порта P0
NOP
Исследуйте работу программы в пошаговом режиме. Наблюдайте за изменением содержимого регистров, ячеек памяти, порта P0, а также флагами МК.
3.3. Исследование команд пересылки с косвенной адресацией
Запишите в память симулятора коды следующих команд
MOV R0, #30H ; Загрузить в регистр R0 адрес ячейки ПД
MOV @R0, #22H ; Переслать в ячейку ПД число 22H
MOV A, @R0 ; Переслать в аккумулятор содержимое ячейки ПД
MOV A, #55H ; Загрузить в аккумулятор число 55H
MOV @R0, A ; Переслать содержимое аккумулятора в ячейку ПД
NOP
Исследуйте работу программы в пошаговом режиме. Наблюдайте за изменением содержимого регистров, ячейки памяти, а также флагами МК.
3.4. Команды пересылки с использованием регистра dptr
В микроконтроллерах семейства МК51 имеется 16-разрядный регистр-указатель данных DPTR, который используется при выполнении некоторых команд. Загрузить в него 16-разрядные данные можно командой
MOV DPTR, #d16.
Эта команда с непосредственной адресацией имеет трехбайтный формат 1-й байт – код операции, 2-й и 3-й байты – 16-разрядные данные.
Регистр DPTR может также использоваться в качестве двух 8-разрядных регистров общего назначения с именами DPH (старший байт) и DPL (младший байт). Эти регистры являются регистрами специальных функций с адресами 83H и 82H соответственно.
Запишите в память симулятора коды команд
MOV DPTR, #2211H ; Загрузить в регистр DPTR число 2211H
MOV R1, DPL ; Переслать в R1 содержимое DPL
MOV R2, DPH ; Переслать в R2 содержимое DPH
MOV A, #0 ; Обнулить аккумулятор
MOV DPH, A ; Переслать аккумулятор в регистр DPH
MOV DPL, A ; Переслать аккумулятор в регистр DPL
MOV DPL, #33H ; Загрузить в DPL число 33H
MOV DPH, #44H ; Загрузить в DPH число 44H
NOP
Выполните программу в пошаговом режиме работы. Наблюдайте за изменением содержимого регистров, а также флагами МК.