‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Category:

worklog: hexotron+

Подумал, что **восьми команд для доступа всего к двум спец*регистрам это как-то многовато.
И стрёмно в том плане, что ежели мне вдруг захочется ещё таких регистров добавить, то их будет сложно вписать в такую конструкцию.
Поэтому - революция! Теперь для доступа к SFR есть всего 2 команды (чтение и запись по указанному номеру), а спецрегистров может быть всего 16 штук по 4 бита в каждом.
Ыть!
Вот таперича-то можно и о прерываниях подумать - ведь какой-нибудь из этих регистров запросто может содержать, например, адрес обработчика (а то и целой таблицы, хехе!).
А ещё, в принципе, и сохранение адреса возврата тоже можно прикрутить, и даже кой-какой стэк -- т.е. забрезжило появление инструкций типа CALL-RET

После этой обрезки набор команд оказался объёмом аккурат 32 штуки.
Это значит, что аппаратная реализация дешифратора должна получиться довольно-таки простой.
Правда, при добавлении новых инструкций она обратно усложнится, но совсем на чуть-чуть.

Что-то вырисовывается.

*спец они потому, что у них есть побочные эффекты. Например, регистр INDEX управляет доступом к памяти данных, а POINTER - задаёт адрес перехода. То есть, для этих регистров может не выполняться правило коммутативности записи, например.
Регистры общего назначения побочными эффектами не обладают: они просто сохраняют данные, как и полагается.

** по одной команде на чтение и запись верхней и нижней половинки каждого из двух этих регистров. Сначала показалось, что так будет проще.
Tags: worklog
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 7 comments