Ходят слухи, что он, танцуя по небу разит мечом словно ветер, что даже во тьме звёздный свет отражается от его меча солнечным днём
Кто-нибудь смыслить в микропрограммировании?

Необходимо расписать микрокоманды и потом их оптимизировать.
1. CPI d8 (сравнение - двух байтовая команда) (S3S2S1S0M : Q:=A − B;)
2. CALL Adr (вызов подпрограммы - 3 байтная команда)


Способ микропрограммирования – горизонтальный
_____________________

С выборкой команд проблем не возникло, а вот с выполнением самой команды есть.

@темы: Микропрограммирование

Комментарии
10.12.2008 в 07:22

D'oh!
это всё для x86? Можно поконкретнее? call далеко не всегда 3-х байтная команда, есть ближний call и есть дальний call. Ведь адрес 4-х байтный, так что в реальности call 5 байтный можно встретить.
10.12.2008 в 15:48

Ходят слухи, что он, танцуя по небу разит мечом словно ветер, что даже во тьме звёздный свет отражается от его меча солнечным днём
Да для x86.
В данном случае 3 байтовая.
_______________________

Выборка команды CPI d8

Сигнал/ Микроператор(ы)/ Коментарий
Выборка первого байта команды (ПБК)
РСШ16:/ ША(15-0):=РС(15-0);/ выдача адреса ПБК из счечика команд на шину адреса
ШАРАП:/ РАП(15-0):=ША(15-0);/ Занесение адреса ПБК в регистр адреса памяти
ЧтЗУ:/ РДП(7-0):=ОП[РАП](7-0);/ Считывание ПБК из ячейки основной памяти и его занесение в регистр данных памяти
РДПШД:/ ШД(7-0):=РДП(7-0);/ Выдача ПБК на шину даных
ШДРК1:/ РК(23-16):=ШД(7-0);/ Занесение ПБК с ШД в старший байт регистра команды
Д:=decod(РК(23-16));/ Декодирование кода операции, содержащегося в ПБК
РСШ16:/ Ш16(15-0):=РС(15-0);/ Выдача адреса из счёкика команд на внутреннюю шину блока регистров
Ш16ID:/ ID(15-0):=PC(15-0);/ Занесение адреса из РС в схему инкремента/декремента
+1ID/ ID:=ID+1;/ Формирование адреса второго байта команды
IDШ16:/ Ш16:=ID;/ Выдача адреса ВБК на внутреннюю шину блока регистров
Ш16РС:/ РС:=Ш16;/ Занесение адреса ВБК в счечик команд
РСШ16:/ ША:=РС;/ Выдача адреса ВБК из счкчика команд на шину адреса
ШАРАП:/ РАП:=ША;/ Занесение ВБК в регистр адреса памяти
ЧтЗУ:/ РДП:=ОП[РАП];/ Считывание ВБК из ячейки основной памяти и его занесение в регистр данных памяти
РДПШД:/ ШД:=РДП;/ Выдача ВБК на шину данных
ШДРК2:/ РК(15-8):=ШД(7-0);/ Занесение ВБК с ШД во второй байт регистра команды
Формирование адреса следующей команды
РСШ16:/ Ш16:=РС;/ Выдача адрема из счечика команд на внутреннюю шину блока регистров
Ш16ID/ ID:=PC;/ Занесение адреса из РС в схему инкремента/декремента
"+1ID:/ ID:=ID+1;/ Формирование адреса очередной команды
IDШ16:/ Ш16:=ID;/ Выдача полученного адреса на внутреннюю шину блока регистров
Ш16РС/ РС:=Ш16;/ занесение адреса очередной команды в счекик команд