Выбрать главу

Внимательный взгляд на МП 68008

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

В этой главе мы рассмотрим МП Motorola 68008, являющийся младшим представителем элегантного и популярного семейства микропроцессоров 68000, находящих применение в таких микроЭВМ, как Macintosh, NeXT, Sun и Apollo. Этот микропроцессор практически идентичен МП 68000 (16-разрядная шина данных, 24-разрядная адресная шина), но упакован в 48-контактный DIP-корпус с 8-разрядной шиной данных и 20-разрядный адресной шиной. Микропроцессор выполняет те же программы, что и МП 68000; более узкая шина данных абсолютно прозрачна для использования.

11.01. Регистры, память и ввод-вывод

Регистры. На рис. 11.1 показаны внутренние регистры МП 68000 (мы будем использовать обозначение «68000» при описании черт, общих для МП 68000 и 68008).

Рис. 11.1. Регистры МП 68000/8.

Процессор содержит 8 регистров данных и 7 адресных регистров, причем все они в полной мере являются регистрами общего назначения; вспомним в связи с этим, что в МП 8086/8 регистр АХ (AL) должен использоваться в операциях ввода-вывода, DX — для адресации к портам и т. д. Регистры данных могут содержать «байты» (8 бит), «слова» (16 бит) и «данные слова» (32 бит), причем тип данных в любой операции указывается непосредственно в обозначении команды на языке ассемблера (см. ниже). Все вычисления и обработка байтов выполняются в регистрах данных.

Адресные регистры используются как указатели памяти или пространства ввода-вывода в 5 из 12 возможных для МП 68000 способов адресации; в адресных регистрах допустимо выполнение лишь нескольких арифметических операций (сложение, вычитание, сравнение, пересылка). Сегменты, как и сегментные регистры, отсутствуют; в микропроцессорах семейства 68000 всегда возможен доступ ко всему адресному пространству (1 или 4 Мбайт для МП 68008 в DIP — или четырехстороннем корпусе, 16 Мбайт для 68000, 4 Гбайт для 68020/30).

В микропроцессоре также имеются: указатель стека (фактически их два, но в каждый данный момент активен только один), программный счетчик PC (именуемый в МП 8086/8 «указатель команд») и регистр состояния SP. Последний содержит флаги (нуля, переноса, переполнения и др.), а также маску прерываний и биты режима.

Память и ввод-вывод. В отличие от МП 8086/8 в процессорах 68000 не предусмотрены отдельные сигналы магистрали ввода-вывода и в их системе команд отсутствуют команды ввода-вывода типа IN и OUT. Ввод-вывод осуществляется так же, как и обращение к памяти, с использованием адресов полной длины и стробирующих сигналов. Для подключения порта ввода-вывода вам следует декодировать адресные линии и сделать так, чтобы регистры ваших портов выглядели, как несуществующая память. Такой метод называется отображением ввода-вывода на пространство памяти; он используется во многих микропроцессорах. (Впрочем, даже в случае самостоятельного протокола ввода-вывода МП 8086 всегда можно отобразить ввод-вывод на пространство памяти с помощью стробирующих сигналов MEMR' и MEMW'.)

Преимущество отображения ввода-вывода на пространство памяти заключается в том, что для операций над регистрами портов можно использовать все команды, предназначенные для работы с памятью. Специальные команды IN/OUT МП 8086/8 заменяет команда MOVE; кроме этого, непосредственно над содержимым портов можно выполнять операции арифметические (сложения, вычитания, циклического сдвига, сравнения, проверки), логические (И, ИЛИ), а также над битами (установка бит, проверка бит). Единственный недостаток отображения ввода-вывода на пространство памяти заключается в необходимости декодировать много адресных линий; практически здесь не возникает трудностей, поскольку при большом адресном пространстве и малом числе портов ввода-вывода нет необходимости декодировать полный адрес (примеры см. ниже).