Программная модель 32-разрядного микропроцессора фирмы Motorola

Форматы данных


Процессор выполняет обработку битов, байтов, 16-разрядных слов, 32-разрядных длинных слов и двоично-десятичных чисел (1 байт = 2 десятичных разряда). Обрабатываемые данные - операнды могут располагаться в регистрах (данных или адреса) или оперативной памяти. Для выборки слова (байты B1-0) или длинного слова (байты B3-0) команда задает адрес старшего байта N, четный или кратный четырем. При этом слова и длинные слова размещаются таким образом, что младшие байты (разряды D7-0 данных) располагаются в ячейках памяти с большими адресами: N+1 или N=3 (рис.3.3). Такое размещение байтов в памяти от старшего к младшему соответствует естественному порядку их написания слева - направо. Этот порядок адресации байтов называется в зарубежной литературе "big-endian". Он отличается от порядка "little-endian", принятого компанией INTEL и рядом других производителей, когда размещение слова начинается с младшего байта, адрес которого служит адресом слова.

МП МС86300 имеет возможность доступа в памяти к байту (8 бит), слову (16 бит) и длинному слову  (32 бита).  В отличие от МП фирмы Intel (8086, 80286, 80386, 80486) в МП 68300 приняты следующие соглашения:

      слова (длинные слова) могут размещаться только по четным адресам;

      старшие байты слова (двойного слова) располагаются в ячейках с меньшими адресами;

      адресом слова (двойного слова) считается его старший байт.

Таким образом, в соответствии с концепцией, принятой фирмой Моторола, слово размещается в памяти в двух соседних ячейках и начинается со старшего байта. Это означает, что при чтении слова, размещенного по адресу Х МС68300 считывает два соседних байта, причем байт по адресу Х интерпретируется как старший, а байт по адресу Х+1 как младший.  Соответственно, длинное слово размещается в четырех смежных ячейках памяти, причем старший байт длинного слова находится по меньшему адресу.



Содержание раздела