Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 49
Текст из файла (страница 49)
Типы данных и мвтоды адрвоации В системе команд МСБ-251 используются следующие типы данных: бит, байт, слово (16 разрядов) и двойное слово (32 разряда). Слово (ВГогт1) или двойное слово (т1ВГогт1) располагаются в памяти так, что младщий байт может находиться по любому адресу, выравнивания по границе двух или четырех байт не требуется. Архитектура МСБ-251 поддерживает следующие методы адресации: + регистровая: в команде указан регистр, содержащий операнд.
Ф непосредственная: операнд содержится в команде. Ф прямая: в команде содержится адрес операнда. + косвенная: в команде указан регистр, содержащий адрес операнда. Ф адресация со смещением: в команде указан регистр и смещение. Адресом операнда является сумма содержимого регистра (базовый адрес) и смещения. В относительная: в команде содержится смещение со знаком от следующей команды до искомого адреса (адрес передачи управления, например, адрес перехода-уппр).
+ битовая: в команде содержится адрес бита. 3.3.3. Команды обработки данных Группа команд обработки данных состоит из команд арифметических, логических и команд передачи 8-, 16- и 32-разрядных данных. (Описание команд см. в Приложении 6.) Методы адресации данных в архитектуре МСБ-251 следующие: микРОкОнтРОллеРы' ЛРхитексуРА НРОпмммиРОалние интеРФейс 254 Диапазон адресов, регистры Нотация ассемблера Комментарии Метод адресации 00:ООООН..ОО:001ГН (КО..К7, ЙТКО.. ЙТКЗ, ПКО, ПК2) КО..К!5, ттТКО..
тлтКЗО, 1Ж0..17К28, 17К56, ПК60 Регистровая Непосредственная, 2 аз яда нет(операнд находится в команде только в команд ах 1ХС и 17ЕС №ЕЬогс - 1, 2 или 4 Непосредственная, 8 аз ядов нет (операнд находится з команде Непосредственная, 16 аз ядов нет(операнд находится з команде внутренняя память данных 00:ООООН..ОО:007РН регистры 5РК Прямая, 8 разрядов адреса ад са 5РК йг16-00:ООООН..
00:РРРРН Прямая, 16 аз ядовад 00:ООООН..ОО:РРРРН Косвенная, 16 аз ядовад 00;ООООН..ОО:ГРРРН Косвенная, 24 разряда адреса 00:ООООН..ГР:РРРРН 4РЮК) Рйз!6 " 4Р'ЙтКО+ОН до 6%тКЗО+РРРГН Сосмещением, 16 разрядов адреса 00:ООООН..ОО:РРРРН Ос 17 йс+йз24- ЕР17КО+ОН до РПК28+РРРРН Ос17К56+(ОН..РРРРН), м стК60Р ОН.,РРРРН Смещение имеет знак, старшие 8 разрядов ПК1с должны иметь значение ООН Сосмещением, 24 разряда адреса 00:ООООН,,ГГ:ГРГГН Регистровая адресация.
В архитектуре МСЯ-251 при использовании ре- гистровой адресации оцеранд(ы) команд обработки данных расположены в регистрах длиной байт (КО,.К15), слово (тлТК0%К2,..., ТНТКЗО) или двойное слово (1)КО, 1Ж4, ..., 1)К28, 1)К56, 1)К60). В архитектуре МС5-51 операнды располагаются только в регистрах КО..К7.
Непосредственная адресация. Архитектура МС5-251. В режиме непосредственной адресации операнды содержатся в самой команде. При операциях с байтами используются 8-битовые непосредственные данные (№с(аса); при операциях со словами — 16-разрядные непосредственные данные (№с(аса16). При №даса8" №ООН..№РРН №даса!6-№ООООН.. №РРГРН йг8 00:ООООН.. 00;007 ГН мнемоника 5РК или йг8 5:080Н-5:1РРН Ю'тЧКО.
РР'1РТКЗО тгстКО..ЮПКЗО, ЕРПК56, ЕРПК60 КО..К7, 'ЙТКО.. РтТК6, 17КО и 1Ж2 находятся втек щембанке старшие 8 разрядов Пйс должны иметь значение ООН Смешение имеет знак, адрес находится в области 00: ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ЕЕ! 255 операциях с двойными словами используются 16-разрядные непосредственные данные в младшем слове и восемь нулей (записывается как №Ое!ага16) или восемь единиц (записывается как №1т(аса16) в старшем слове. Команды МОЧ, в которых 16-разрядные непосредственные данные пересылаются в регистр двойного слова (1) К!Т), помещают данные либо в старшее слово регистра, не меняя его младшего слова, либо в младшее слово, при знаковом или нулевом расширении в старшее слово.
В командах инкремента и декремента содержатся непосредственные данные (№з!тоге - 1, 2 или 4), указывающие на число операций инкремент-декремент. Архитектура МСЯ-51. В командах используются только 8-битовые непосредственные данные (№е!ага). Прямая адресация. Архитектура МС5-251. При прямой адресации в команде содержится адрес операнда. 8-разрядный режим прямой адресации адресует как байты, так и слова внутреннего ОЗУ (йг8 - 00:ООООН..ОО:007РН), а также регистры 8РК (е(!г8 - Я 080Н..5: 1РРН), но только байтовой длины. 16-разрядный режим прямой адресации адресует как байты, так и слова в памяти (е!!Т16 - 00:ООООН..ОО:РРРРН).
Архитектура МСЯ-51. 8-разрядный режим прямой адресации адресует 256 байт внутреннего ОЗУ (е!!Т8 - ООН..7РН) только как байты и регистры 5РК (ЙТ8 80Н..РРН), тоже только как байты. Косвенная адресация. В арифметических и логических командах с косвенной адресацией операндом-источником всегда служит байт, а операндом- приемником либо аккумулятор, либо байтовый регистр (КО-К15). Адресом источника служит байт, слово или двойное слово.
В рассматриваемых архитектурах косвенная адресация выпоняется через разные регистры. Архитектура МС5-251. Память адресуется косвенно через регистры слова и двойного слова: + регистр длиной в слово (6>1АГК)4 = О, 2, 4, ..., 30). 16-разрядный адрес в ЪГК! может адресовать ячейки 00:ООООН..ОО;РРРРН. ВР регистр двойное слово (4РОКК!е О, 4, 8, ..., 28, 56 и 60). 24 младших значащих бита могут адресовать полное 16-Мбайт адресное пространство.
Старшие восемь бит 0К!г должны быть равны О. (Если ПК60 используется как указатель данных общего назначения, необходимо, чтобы ПК60 был указателем расширенного стека Е!КХ.) Архитектура МС5-51. Команды используют косвенную адресацию для доступа к внутреннему ОЗУ, памяти программ и к внешнему ОЗУ данных. + регистр длиной байт (4РК1, ! - 1, 2). Регистры КО и К1 косвенно адресуют внутреннтою память с адресами ООН..РРН и нижние 256 байт внешнего ОЗУ. 256 МИКРОКОНТРОЛЛЕРЫ: АРХИТЕКТУРА ЛРОГРАММИРОЕАИИ ИНТЕРФЕЙС е 16-разрядный указатель данных (ЕР1УРТК или КРА+1)РТК). Команды МОЧС и МОАУХ используют зти режимы косвенной адресации для доступа к памяти программ и внешнему ОЗУ данных. Е 16-разрядный программный счетчик (ФА+ РС)). Команда МОЧС исполь- зует косвенный режим для доступа к памяти программ.
Адресация со смещением. В архитектуре МС8-251 некоторые команды пересылки используют адресацию со смещением. Адресация с 16-разрядным смещением (РЖК)+Йе16) позволяет косвенно обратиться к нижним 64 Кбайт памяти. Базовый адрес может находиться в любом регистре слова 'тт'К1. 1(оманда содержит 16-разрядное смещение со знаком, добавляемое к базовому адресу. При вычислении адреса операнда используются только младшие 16 разрядов суммы. Если сумма базового адреса и положительного смещения превышает РРГРН, то вычисленный адрес возвращается внутрь региона 00: (например, РОООН + 2005Н превращается в 1005Н). Если сумма базового адреса и отрицательного смещения меньше нуля, то вычисленный адрес попадает в верхнюю область региона 00: (так, 2005Н + РОООН превращается в 1005Н).
Адресация с 24-разрядным смещением (Ю1)К)т+ЙЕ24) обеспечивает доступ к 16 Мбайтам адресов. Базовый адрес должен находиться в регистре 1уКО, ОК4,...., ОК24, ОК28, ОК56 или 1)К60. Старший байт в регистре двойного слова должнен быть равен нулю.
В команде имеется 16-разрядное знаковое смещение, добавляемое к базовому адресу. 3.3.6. Арифметические команды В архитектуре МС5-251 значительно расширен набор арифметических команд. 1<Оманды АО1) и 8ПВ работают с операндами, доступ к которым обеспечивается несколькими способами: е как к содержимому аккумулятора, регистру длиной байт (Кп) или слово (УКК1); е операнд содержатся в самой команде (непосредственные операнды); Ф операнд содержатся в памяти, адресуемой прямо или косвенно. Команды АО1)С и Я.1ВВ точно такие же, как в МСЯ-51.
Команда СМР (сошраге) вычисляет разность между двумя байтами или словами, а затем записывает признак результата в флаги С т', ОЧ, АС, Х и 2 регистров РЯ'тт' и РВА'1. Разность не запоминается. Операнды могут адресоваться с использованием разных методов. Команду СМР чаше всего используют для сравнения данных или адресов перед выполнением команды условного перехода. ГЛАВА 3.
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-221 257 Операции 1ХС (1псгетттепт) н 1)ЕС (десгешеп1) для микроконтроллеров МСЗ-251 реализуются командами, которые могут адресовать регистры длиной байт, слово и двойное слово и инкрементировать-декрементировать их на 1, 2 или 4 (ссылка Фз!тогс). Эти команды работают в основном с указателями адреса и счетчиками циклов. В архитектуре МСБ-251 реализованы команды М()1. (щп111р!у) и 1)1Ъ' (е(1ВЫе) для 8- и 16-битовых данных.