Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работы МПУ 2009.doc
Скачиваний:
0
Добавлен:
21.03.2026
Размер:
361.47 Кб
Скачать

1. 7. Содержание отчета

1. Тексты программ с комментариями.

2. Времена выполнения различных групп команд.

3. Таблица чисел в DEC-, HEX- и BIN-системах счисления (16 строк).

Лабораторная работа 2

Обработка данных микропроцессорными системами

2. 1. Способы адресации

Способ адресации определяет порядок вычисления исполнительного адреса для команды. В командах обработки данных исполнительный адрес является адресом данных, а в командах перехода – адресом, по которому команда передает управление. Способы адресации делятся на прямые и косвенные. В первом случае исполнительный адрес является частью команды или вычисляется с использованием содержимого одного из регистров и указанного в команде смещения. При косвенной адресации в команде содержится адрес ячейки памяти, в которой записан исполнительный адрес.

В однокристальной микроЭВМ 87С51 используется 5 способов адресации: регистровая, прямая, косвенно-регистровая, непосредственная и косвенно-регистровая по сумме базового и индексного регистров. Эти способы используются в различных сочетаниях и обеспечивают 21 режим адресации.

Регистровая адресация используется для обращения к восьми регистрам выбранного банка, сдвоенному регистру DPTR, регистрам А и В (MOV A,Rn; XCH A,Rn; DIV AB и т. п.). Регистровая адресация позволяет получать однобайтовый эквивалент двухбайтовых команд прямой адресации.

Прямая адресация используется для обращения к нижней половине внутреннего ОЗУ (адреса 0 ... 7FH) и к регистрам специального назначения, расположенным по адресам 80Н ... FFH. Регистры выбранного банка могут быть адресованы обоими способами, например, при выборе нулевого банка команды MOV R0,A и MOV 0,A выполняют одно и то же действие – пересылку содержимого аккумулятора в регистр R0, который располагается в памяти по адресу 0Н. Команда MOV R0,30H использует оба рассмотренных способа адресации, пересылая в регистр R0 содержимое ячейки памяти, расположенной по адресу 30Н. Символические имена регистров специального назначения, используемые в командах (ACC, PSW, SP, TCON, PCON и др.), при ассемблировании программы автоматически заменяются прямыми адресами.

Прямая адресация используется также для обращения к 256 отдельно адресуемым битам, 128 из которых расположены в ячейках внутреннего ОЗУ с адресами 20Н ... 2FH, а остальные – в регистрах специального назначения (регистры-защелки портов, АСС, В, PSW, регистры управления системой прерывания и таймерами микроЭВМ). При обращении к биту используется символическое имя бита в регистре (SETB ACC.2, CLR PSW.3, CPL Р1.3, CLR C) или его прямой адрес (SETB 00H, ANL C,0FFH, CPL 80H и т. п.). Бит с адресом 00Н является младшим битом ячейки памяти с адресом 20Н, бит FFH – старшим битом ячейки с адресом 2FH.

Косвенно-регистровая адресация позволяет обращаться к внутренней и внешней памяти данных (ОЗУ). Символ косвенной адресации – @. В качестве регистров указателей, содержащих адрес, по которому производится обращение, используются регистры R0 или R1 выбранного банка регистров. MOV A,@R1 – команда пересылки в аккумулятор содержимого ячейки внутреннего ОЗУ, адрес которой хранится в регистре R1.

Обращение к внутреннему ОЗУ с адресами 80Н ... FFH возможно только с помощью косвенной адресации, поскольку такие же адреса имеют регистры специального назначения, доступные только с помощью прямой адресации.

Обмен между микроЭВМ и внешним ОЗУ возможен только через аккумулятор с помощью косвенной адресации. Для обращения к любой из 64К ячеек в качестве указателя адреса используется шестнадцатиразрядный регистр DPTR (MOVX A,@DPTR; MOVX @DPTR,A). Возможен обмен с внешним ОЗУ в пределах блока из 256 ячеек (страницы) с использованием R0, R1 (MOVX A,@Ri; MOVX @Ri,A). В этом случае номер страницы (старший байт адреса) задается содержимым порта Р2. Этот вариант может применяться в конфигурациях, использующих только внутреннее ПЗУ, так как при считывании очередной команды из внешнего ПЗУ в порт Р2 выводится старший байт адреса команды.

Косвенно-регистровую адресацию используют команды PUSH и POP. В качестве указателя адреса выступает восьмиразрядный регистр – указатель стека (SP). Стек в микроЭВМ семейства MCS51 расположен во внутреннем ОЗУ. По сигналу RESET в SP записывается адрес 07Н, т. е. под стек отведено все внутреннее ОЗУ, кроме нулевого банка регистров. Программа «монитор» переназначает стек с адреса Е0Н.

Непосредственная адресация позволяет использовать константы, явно указанные в команде. Символ непосредственной адресации – #. Например, MOV DPTR,#5000H – команда загрузки указателя адреса, SUBB A,#230 – вычитание из аккумулятора числа 230 и т. п.

Косвенно-регистровая адресация по сумме: базовый регистр плюс индексный регистр (содержимое аккумулятора А) упрощает просмотр таблиц, зашитых в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому содержимым DPTR или РС и содержимым аккумулятора, затем помещен в аккумулятор (команды MOVC A,@A+DPTR и MOVC A,@A+PC). Ниже приведен фрагмент программы, использующей косвенно-регистровую адресацию по сумме для вывода в порт Р1 одного периода синусоидального сигнала, 256 отсчетов которого записаны в таблице с адреса ТABSIN.

MOV DPTR,#TABSIN ;загрузка базового регистра

MOV 20H,#0 ;загрузка счетчика отсчетов

M: CLR A ;очистка индексного регистра

MOVC A,@A+DPTR ;выборка очередного отсчета

MOV P1,A

INC DPTR ;увеличение базового адреса на единицу

DJNZ 20H,M ;условный переход по содержимому 20Н

Соседние файлы в предмете Микропроцессорные устройства