Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_4.doc
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
93.7 Кб
Скачать

Пример

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

Выполните программу в пошаговом режиме работы. Наблюдайте за изменением содержимого регистров, а также флагами МК.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]