Организация данных и способы адресации, страница 2

L---------------+--------------+--------------+---------------|               .              |              .               |

|               .              |              .               |

--------------------------------------------------------------¬

¦                     длинное слово $FFFFFFFC                 ¦

¦                                                             ¦

¦          слово $FFFFFFFC     ¦         слово $FFFFFFFE      ¦

¦                              ¦                              ¦

¦ байт $FFFFFFFC¦байт $FFFFFFFD¦байт $FFFFFFFE¦байт $FFFFFFFF ¦

L---------------+--------------+--------------+---------------Рис. 2-1. Адресация операнда в памяти битовые данные

7           0 ¦ 7             0 ¦ 7         0 ¦ 7           0

---------------+--------г=¬------+-------------+--------------¬

¦  байт n-1    ¦ 7 6 5 4¦3¦2 1 0 ¦  байт n+1   ¦  байт n+2    ¦

L--------------+--------L=-------+-------------+--------------^         ^

¦ базовый ¦ номер адрес     бита битовые поля базовый бит

7             0¦7            0¦7        v   0¦7             0

----------------+--------------+--------г=====¦=========¬-----¬

¦  байт n-1     ¦  байт n      ¦        ¦0 1 2 3 ... w-1¦     ¦

+---------------+--------------+--------L===============------¦               ^

<- смещение -- ¦ ----- смещение  -----><---  длина  --->

... -3 -2 -1¦ 0  1  2 ...

¦ базовый адрес байтовые целые данные

7             0¦7            0¦7             0¦7            0

----------------г==============¬---------------+--------------¬

¦  байт n-1     ¦СТБ байт n МЛБ¦  байт n+1     ¦ байт n+2     ¦

L---------------L==============----------------+--------------^

¦адрес словные целые данные

7             0¦7            0¦7             0¦7            0

----------------г==============================¬--------------¬

¦  байт n-1     ¦        словное целое         ¦ байт n+2     ¦

L---------------L==============================---------------^

¦адрес длинные целые данные

¦          ¦          ¦          ¦          ¦

7      0v7        0v7        0v7        0v7        0v7      0

---------г===========================================¬--------¬

¦байт n-1¦             двухсловное целое             ¦байт n+4¦

L--------L===========================================---------^

¦адрес упакованные двоично-десятичные данные

7             0¦7     4¦3     0¦7             0¦7            0

----------------г=======+=======¬--------------+--------------¬

¦  байт n-1     ¦  СТЦ  ¦  МЛЦ  ¦  байт n+1    ¦ байт n+2     ¦

L---------------L=======¦=======---------------+--------------^

¦адрес неупакованные двоично-десятичные данные

7             0¦7     4¦3     0¦7     4¦3     0¦7            0

----------------г=======+=======T=======+=======¬-------------¬

¦  байт n-1     ¦  XXX  ¦  СТЦ  ¦  XXX  ¦  XXX  ¦ байт n+2    ¦

L---------------L=======¦=======¦=======¦=======--------------^

¦адрес

XXX = значение, задаваемое пользователем

Рис. 2-2. Размещение  данных в памяти

Сопроцессоры могут работать с данными любых типов и размеров. К

примеру, сопроцессор вещественной арифметики МC68881 может  обмениваться  с  памятью элементами данных размером в квадрослово

(именно, числами удвоенной точности, представленными в  плавающей форме).

Битовые данные определяются  базовым  адресом,  указывающим  на байт в памяти (базовый байт) и номером, выделяющим в этом байте конкретный бит. Старшим битом в байте является бит под  номером семь.

Битовые поля определяются:

1)  базовым адресом, указывающим на байт в памяти,

2)  смещением битового поля, характеризующим положение самого левого (базового) бита поля  относительно  старшего  бита базового байта,

3)  длиной битового поля, т.е. количеством  битов  справа  от базового бита, принадлежащих полю.

Старший бит базового байта имеет (битовое) смещение 0,  младший бит этого байта имеет смещение 7,  а  младший  бит  предыдущего байта памяти имеет смещение -1. Величина смещений битовых полей может  варьироваться  в диапазоне от -2**31 до 2**31-1, а длины битовых полей - в диапазоне от 1 до 32.

2.4 ФОРМАТ КОМАНДЫ

Как показано на Рис. 2-3, каждая команда занимает от одного  до

11 слов. Длина команды и операция, подлежащая выполнению, определяются первым словом команды, т.н.  словом  операции.  Прочие слова, называемые словами расширения, служат для уточнения подлежащей выполнению операции и указания операндов. Эти слова могут представлять из себя  непосредственные  операнды,  дополнительные данные (т.н. расширения) для вычисления  исполнительных адресов при различных способах адресации, величины смещений для переходов по относительному адресу, номера битов или спецификации битовых полей, спецификаторы специальных регистров, операнды программной ловушки,  константы  упаковки/распаковки,  длины кортежей аргументов или коды условий сопроцессора.

15                                           0

-----------------------------------------------¬

¦            операционное слово                ¦

¦ ( определяет действия и способы адресации )  ¦

+----------------------------------------------+

¦       специальные описатели операндов        ¦

¦            ( 0, 1 или 2 слова)               ¦

+----------------------------------------------+

¦   непосредственный операнд или расширение    ¦

¦      исполнительного адреса источника        ¦

¦            ( от 0 до 5 слов  )               ¦

+----------------------------------------------+

¦  расширение исполнительного адреса источника ¦

¦            ( от 0 до 5 слов  )               ¦

L----------------------------------------------Рис. 2-3. Обобщенный формат команды

2.5 ПРОГРАММНЫЕ ССЫЛКИ И ССЫЛКИ НА ДАННЫЕ

MC68020 различает два класса адресных ссылок: программные ссылки и ссылки на данные. Программные ссылки, как можно понять  из названия, суть ссылки к области памяти,  в  которой  содержится программный код. Напротив, ссылки на данные суть ссылки  к  области памяти, в которой содержатся обрабатываемые данные.  Считываются операнды, как правило, из пространства данных.  Запись операндов всегда производится в пространство данных; исключение могут составить те случаи, когда запись осуществляется командой

MOVES.