Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > 68300 > Архитектура |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cпособы адресации и формат командПроцессор выполняет обработку битов, байтов, 16-разрядных слов, 32-разрядных длинных
слов и двоично-десятичных чисел (1 байт = 2 десятичных разряда). Обрабатываемые данные - операнды могут располагаться в регистрах
(данных или адреса) или оперативной памяти. Для выборки слова (байты B1-0) или длинного слова (байты B3-0) команда задает адрес
старшего байта N, четный или кратный четырем. При этом слова и длинные слова размещаются таким образом, что младшие байты (разряды
D7-0 данных) располагаются в ячейках памяти с большими адресами: N+1 или N=3 (рис.3.3). Такое размещение байтов в памяти от старшего
к младшему соответствует естественному порядку их написания слева - направо. Этот порядок адресации байтов называется в зарубежной
литературе "big -endian". Он отличается от порядка "little-endian", принятого компанией INTEL и рядом других производителей, когда
размещение слова начинается с младшего байта, адрес которого служит адресом слова.
Рис.3.3. Адресация байтов в слове (а) и длинном слове (б) Процессор CPU32 реализует следующие способы адресации операндов:
Таблица 3.1. Способы адресации CPU32, их представление в формате команды и на языке ассемблера
Смещение d16 или d8 может быть как положительным, так и отрицательным. В формате
команды (рис.3.4) это смещение представляется двоичным числом в дополнительном коде, которое при формировании адреса расширяется
знаковым разрядом до 32 разрядов. В качестве индексного регистра Xn при адресации с индексированием может использоваться любой из
регистров данных Dn или адреса An. При прямой адресации абсолютный адрес может задаваться словом Abs.W или длинным словом Abs.L в
зависимости от его разрядности. При непосредственной адресации используются 8-разрядные (Im8), 16-разрядные (Im16) или 32-разрядные
(Im32) операнды. EA = ( An или PC ) + ( Xn )*scale+ bd. Отметим, что текущее содержимое PC, используемое для вычисления относительного адреса, равно адресу первого слова выполняемой команды, увеличенному на 2. Для формирования адреса используется 32-разрядное содержимое регистров, однако в качестве физического адреса на шину адреса A23-0 выводятся только 24 младших разряда. Значение адреса, полученное одним из указанных способов, называется эффективным адресом [EA].Процессор CPU32 не имеет специальных команд ввода-вывода данных. При обращении к внешним устройствам их адрес формируется так же, как при обращении к ячейкам памяти, с использованием перечисленных выше способов адресации. Если сформированный адрес оказывается адресом внешнего устройства, то оно является источником или приемником данных (операндов). Выполняемые процессором команды могут быть двухадресными, одноадресными и безадресными. На рис.3.4,а показан формат типовой двухадресной команды, где поле COP определяет вид операции, поле OPM - разрядность операндов и размещение результата, поле Rn содержит номер регистра n, в котором находится один операнд, поля MODE и REG задают способ адресации второго операнда (табл.3.1). Таким образом, один операнд всегда выбирается из регистра, второй - из регистра или памяти, результат операции размещается на месте одного из операндов. В табл.3.1 указаны символические обозначения адреса операнда на языке ассемблера в соответствии со способом адресации, используемым для его формирования.
Рис.3.4. Формат типовой команды При адресации с индексированием команда содержит второе слово, формат которого
показан на рис.3.4,б. Бит D/A этого слова указывает тип регистра, который используется в качестве индексного: при D/A=0 -
регистр данных (Xn=Dn), при D/A=1 - регистр адреса (Xn=An); поле Xn содержит номер регистра n; бит W/L определяет разрядность
индекса: при W/L=0 индексом служит содержимое 16 младших разрядов индексного регистра, которые расширяются знаковым разрядом до
32-разрядного числа, при W/L=1 индексом служит 32-разрядное содержимое регистра. На языке ассемблера разрядность индекса
определяется символами W или L, указываемыми после имени регистра Xn (.sz в табл.3.1). Поле d8 содержит 8-разрядное смещение в
дополнительном коде. Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|