Типичным представителем "середнячкового" подхода между 8 и 16 битностями, в чём то даже, гениальным, был классический древний Z80, между прочим, программно совместимый с Intel 8008, предтечей 8086, но расширяющий его намного.
Вкратце опишу его основные архитектурные особенности, для тех кто не в курсе:
РЕГИСТРЫ:
- 8-битный регистр-аккумулятор под гордным символическим названием A, над которым доступен весь спектр арифметико-логических операций
- незримый напарник его, 8-битный регистр флагов F
- замечательная шестерка - 8-битные регистры B, C, D, E, H, L общего назначения
- 16-битные stack pointer SP и program counter PC
- мощное по сравнению с 8008 нововведение: два индексных 16-битных регистра IX и IY, через которые можно было удобно адресовать по смещению
Разумной фичей Z80 (ну вообще то Zilog концепт спер у Intel, а интел еще у кого наверное) было то, что великолепная шестерка могла в ряде команд выступать в роли трех 16-битных регистров: (B,C),(D,E),(H,L). Например можно было адресовать через пару (HL) память. Можно было сразу грузить например в любую из этих трех пар одной инструкцией 16-битное слово. Можно производить 16-битный инкремент и декремент этих пар. А регистр (HL) при этом выступает в роли подобия 16-битного аккумулятора - с ним можно производить 16-битные сложения и вычитания! Но к сожалению дальше этого дело не идет, более того, такие 16-битные операции не влияют на регистр флагов и потому истинно 16-битным процессор не является.
Ну это всё была присказка, для тех кто не в курсе дел, а сказка будет впереди.
Итак, Zilog задалась целью усовершенствовать Z80, снять лимиты и расширить возможности.
Как уже упомянуто выше - один из основных лимитов - это шина адреса, 16-битная как в 8-битном Z80, который, правда чуток может 16-бит даже с данными, так и в некоторых истинно 16-битных процах, ибо регистры то всё равно 16 бит.
Как мы знаем из истории тот же интел пошел по скользкому пути сегментации адресной шины - архитектура i8086. В общем то своего рода удачный ход, хотя к настоящему времени сегментация мертва, хоть и поддерживается современными процами x86. Но в сущности, и это было понятно и тогда и это понятно и сейчас - сегментация - суть - костыли. Костыли, которые можно в полной мере отбросить только перейдя на ступеньку выше - на ступеньку 32-битности. Да, именно с приходом 32-битного i30386 сегментация и умерла.
В сущности - сегментация не более чем засахренный хак с контроллером памяти, по сигналам из портов ввода-вывода процессора переключаещего отображение банков физической памяти на ножки адресной шины процессора. Да, как ни крути, это костыли.
Вы наверное уже поняли, что раз я так долго распинаюсь - значит чего то должно быть интересного в итоге то?
Возможно и нет. Кому как. Но действительно перейду к сути.
Итак, эти "извращенцы" из Zilog в eZ80 полностью сохранили совместимость с Z80, но ввели расширенный режим, который позволяет без хаков адресовать 16 мегабайт оперативной памяти.
Я заинтересовался и вник в вышеприведенный юзер мануал.
И отпрянул, ужаснувшись истиной.
Проц eZ80 остался 8-битным!
Но это полбеды - расширенный режим в сущности переводит его в.... 24-битный режим!
Нет нет, аккумулятор, т.е. 8-битный регистр A при этом остается 8-битным.
Технически это происходит так - у всех регистров, имеющих 16-битное представления появляется дополнительный верхний байт, расширяющий 16 бит до 24.
Т.е. 24-битными становятся IX, IY, SP, PC, ... BC, DE, HL. Вот эти добавочные байты нельзя адресовать из кода как можно, например, по отдельности адресовать LD A, B или LD A, IXL (IXL = нижний байт регистра IX). Нельзя. Но все операции загрузки выгрузки с этими регистрами становятся трехбайтными и учитывают эти байты. Можно выгрузить в память и считать оттуда содержимое "расширенного байта".
Таким образом адресация становится 3-байтной и все операции и данные, раньше бывшие 2-байтными - становятся 3-байтными. Т.е. так же доступен суженный диапазон арифметических операций 24-битного HL с 24-битными операндами в памяти или другими 24-битными парами.
Итак, можно считать, что перед нами смешанный 8-битно-24-битный процессор. O_o
Имхо, жэсть.
[ссылка]
_________________
Человек отличается от обезьяны умением не замечать очевидных вещей.
Нет,немножко не так-INTELу пришлось догонять z80 ,выпустив INTEL 8085.
У Вас нет прав отвечать в этой теме.