Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 193

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 187 188 189 190 191 192 < 193 > 194 195 196 197 198 199 .. 528 >> Следующая

в общем виде.
MOV A,R5 ; Загрузить аккумулятор АСС операндом из регистра R5.
Двухадресные команды, которые используют регистровую адресацию вместе с
непосредственной или прямой адресацией, имеют двухбайтовый формат
команды. Примеры.
MOV ad,Rn ; Запись команды загрузки ячейки памяти с адресом ad из
регистра Rn в общем
; виде.
MOV 30h,R5 ; Загрузить ячейку памяти с адресом 30h операндом из регистра
R5.
MOV R7,#06 ; Загрузить в регистр R7 число 6.
Команды с прямой адресацией имеют длину 2 байта. Первый байт предназначен
для кода команды, второй байт содержит адрес ячейки резидентной памяти
данных, где хранится операнд. Так как МК с ядром MCS-51 имеют адресное
пространство внутренней памяти данных OOh - OFFh, то в использовании
двухбайтового формата адреса нет необходимости. Условное обозначение
адреса в мнемонике команды - ad.
Примеры.
ADD A,ad ; Запись команды ADD с прямой адресацией в общем виде.
ADD A,31h ; Сложить содержимое аккумулятора АСС с содержимым ячейки
; резидентной памяти с адресом 31h. Результат поместить в АСС.
MOV add,ads ; Переслать содержимое ячейки памяти с адресом ads в
ячейку
; памяти с адресом add. Например: MOV 10h,21h.
Команды с косвенной адресацией имеют длину 1 байт. В этом байте
расположен код операции. Адрес операнда находится в регистре Ro или R1
текущего банка, если обмен или операция производится с внутренним ОЗУ
данных. Обратите внимание, в качестве источника адреса операнда могут
использоваться только регистры Ro и R1 (общее обозначение Ri), но не
могут использоваться регистры R2- R7.
Примеры.
ADD А, @ R0 ; Сложить содержимое аккумулятора АСС с содержимым ячейки
памяти,
; адрес которой находится в регистре R0.
336
СЕМЕЙСТВО МК MCS-51 ФИРМЫ "INTEL"
DEC @R1 ; Уменьшить на 1 содержимое ячейки памяти, адрес которой
находится
; в регистре R1.
Косвенная адресация используется также для обращения к внешней памяти
данных. Однако адрес ячейки внешней памяти должен быть двухбайтовым (см.
рис. 4.3). Поэтому при использовании в качестве регистра-указателя R0 или
R1 старший байт адреса должен быть предварительно загружен в порт Р2. При
обращении к внешней памяти данных в качестве регистра-указателя может
быть также использован двухбайтовый регистр DPTR. Тогда предварительное
формирование старшего байта адреса в Р2 не требуется. Примеры.
MOVXA, @R0 ; Переслать в АСС содержимое ячейки внешней памяти данных,
; старший байт адреса которой находится в Р2, младший байт -; в регистре
R0 текущего регистрового банка. <
MOVX A,@DPTR ; Переслать в АСС содержимое ячейки внешней памяти данных,
; старший и младший байты адреса которой находятся в двух-; байтовом
регистре DPTR.
Косвенная адресация используется также для чтения данных из памяти
программ, в том числе для выборки элемента с порядковым номером из
таблицы.
Примеры.
MOVC A, (c)A+DPTR ; Переслать в АСС содержимое ячейки памяти программ,
адрес ; которой вычисляется сложением двухбайтового значения ; регистра-
указателя DPTR с однобайтовым беззнаковым ; операндом из аккумулятора.
Эту же операцию можно t .
; интерпретировать, как чтение элемента с номером i, который ;задан в
аккумуляторе, из таблицы с начальным адресом, который v,
; хранится в DPTR. ,.у,
MOVC А,@А+РС ; Переслать в АСС содержимое ячейки из области памяти
; программ, адрес которой равен текущему значению счетчика ; команд PC
плюс значение операнда в аккумуляторе.
Относительная адресация используется только в командах условных
переходов, которые используются для организации ветвления программ.
Команды условных переходов имеют двухбайтовый формат или трехбайтовый
формат. В командах типа "перейти по флагу" первый байт содержит код
операции, а второй - смещение адреса следующей команды относительно
адреса текущей команды в целочисленном формате со знаком. Диапазон
возможных кодов смещения: от -128 до +127. В командах типа "выполнить
действие и перейти по его результату" первый байт содержит код операции,
второй байт -операнд для выполнения действия, третий байт - смещение
адреса.
Если условие, заданное типом используемой команды условного перехода,
выполняется, то адрес следующей команды центральный процессор вычисляет
путем сложения текущего адреса с кодом смещения. Если условие не
выполняется, то МК переходит к выполнению следующей команды.
При написании программ нет необходимости вычислять абсолютные коды
смещения для команд условного перехода. Достаточно указать лишь метку,
численное значение кода смещения вычислит программа Ассемблер.
Примеры.
JZ rel ; Перейти по метке rel, если значение аккумулятора АСС равно
0.
DJNZ ad,rel ; Вычесть 1 из содержимого ячейки памяти с адресом ad и
перейти
; по метке, если в ячейке не 0.
337
1
8-РАЗРЯДНЫЕ МИКРОКОНТРОЛЛЕРЫ
4.2.3. СИСТЕМА КОМАНД МК СЕМЕЙСТВА MCS-51
Система команд MCS-51 включает 111 инструкций. Команды процессорного ядра
MCS-51 имеют однобайтовый, двухбайтовый и трехбайтовый формат.
Большинство команд (94) имеют формат один или два байта и выполняются за
Предыдущая << 1 .. 187 188 189 190 191 192 < 193 > 194 195 196 197 198 199 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed