Форматы регистров и памяти



Предыдущая | Следующая

Форматы регистров и памяти
Для процессора 68000 память организована в 8-битовые байты. Базовой единицей памяти является байт, а не слово или длинное слово. В банке памяти 64 К адресуются 64 Кбайт, причем 32 Кбайт имеют четные адреса и 32 Кбайт — нечетные адреса.
Один четный и один нечетный адрес образует ячейку памяти из 16 бит. Биты 15 — 8 всегда находятся по четному адресу, а биты 7 — 0 — по нечетному. 16-битовая шина данных подключена к каждой ячейке, содержащей один четный и один нечетный адрес. Такая организация памяти позволяет процессору адресовать одиночный байт, двойной байт (слово) и счетверенный байт (длинное слово). Кроме того, при необходимости процессор может работать с отдельными битами.
В процессоре с памятью могут работать 19 регистров. Они похожи на аккумуляторы, индексные регистры, указатели стека, программный счетчик и регистр кода условия в 8-битовом компьютере, но гораздо универсальнее.
Имеется восемь 32-битовых регистров данных, которые применяются как аккумуляторы, но более универсальны. Регистры оперируют данными любого размера (битами, байтами, словами и двойными словами). К битам 7 — 0 можно обращаться как к байтам, к битам 15 — 0 — как к словам и к битам 31—0 — как к двойным словам. Регистры данных имеют свои адреса D7 — D0, не входящие в карту памяти. Все регистры данных аналогичны.
Имеется регистр кода условия CCR, и все регистры данных воздействуют на биты условия. Отметим, что остальные регистры не влияют на биты условия.
Есть также семь 32-битовых регистров адреса с адресами АО—А6, которые похожи на регистры данных, но имеют и отличия. Прежде всего, к регистру адреса нельзя обращаться байтами, так как он работает только со словами и двойными словами. На рис. 15.28 регистры данных показаны с пунктирными линиями, обозначающими разделение на байты и слова, а регистры адреса разделены только на слова.
Регистры адреса не воздействуют на флажки CCR, что упрощает программирование процессора. Об этом нужно помнить специалистам по аппаратным средствам. В 8-битовом процессоре на флажки воздействует большинство регистров, и в ходе выполнения программы состояния флажков непрерывно изменяются. Однако многие изменения для выполнения программы не нужны. Часто изменение флажка оказывается ненужным и требуются дополнительные команды для устранения этого эффекта. При обработке данных флажки играют важную роль, но при адресации они только мешают. Поэтому в процессоре 68000 регистры данных воздействуют на флажки, а регистры адреса не влияют на флажки.
Указатель стека, относящийся к регистрам адреса, имеет адрес А7. Фактически это адрес двух указателей стека. Два указателя никогда не используются одновременно в одном и том же режиме, поэтому они могут разделять один адрес. Процессор может работать в режиме пользователя и режиме супервизора. Обычно компьютер работает в режиме пользователя и переходит в режим супервизора в специальных ситуациях.
Программный счетчик длиной 32 бита может прямо адресовать 4 Гбайт. Однако в процессоре 68000 действует только 24-битовый адрес, позволяющий адресовать 15 Мбайт (8 Мбайт с четными и 8 Мбайт с нечетными адресами). Прямо используются только 23 бита, а бит АО управляет сигналами *UDS и *LDS. Четный и нечетный байты образуют 16-битовое слово. Программный счетчик может адресовать 8М 16-битовых слов. Адрес каждого слова обычно четный. Программный счетчик может адресовать 4 М длинных слов. Каждое длинное слово имеет четный номер, но следующий номер пропускается.
Процессор 68000 быстро оперирует словами и длинными словами, адреса которых начинаются с четного числа. Когда они начинаются по нечетному адресу, операция выполняется медленнее из-за допол-
нительного обращения к памяти. Обычно программисты стараются размещать слова и длинные слова по четным адресам. При обращении к байтам адрес может быть любым.
Единственный 16-битовый регистр кода условия, называемый также регистром состояния, показан на рис. 15.33. Он разделен на две половины по 8 бит. Старшие биты зарезервированы для системы, а младшие — для пользователя.

Младшие биты содержат пять флажков, которые устанавливаются или сбрасываются операциями в регистрах данных. Четыре флажка таких же, как в процессоре 6800: С — перенос, V — переполнение, Z — нуль и N — отрицательный. Бит расширения X помогает флажку переноса. В процессоре 68000 флажок С выполняет две функции — арифметического переноса и управления программой. Он проверяется в некоторых командах условного перехода. Бит X действует как арифметический перенос, а бит С проверяется в командах условного перехода, что обеспечивает программисту значительные удобства.
В системном байте биты 8, 9 и 10 служат маской прерываний. Бит 13 показывает режим работы процессора: 1 — режим супервизора, 0 — режим пользователя. Бит 15 предназначен для отладки, так как при установке его в единицу процессор переходит в режим трассировки. Можно разработать процедуру обслуживания трассировки. Для локализации ошибки процессор переводится в режим трассировки и выполняет по одной команде. После выполнения команды процессор переводится в режим супервизора. В режиме супервизора и с установленным в единицу битом 13 программный счетчик формирует специальный вектор, который направляет процессор к процедуре обслуживания трассировки. Эта процедура может показать содержимое ячеек памяти, регистров, состояния флажков и т.д. Режим трассировки удобен для программистов и специалистов по аппаратным средствам.

 

 Поиск и устранение неисправностей в персональных компьютерах