Да, аз това винаги го правя, просто не го отбелязвам на симулатора, защото там условията са идеални. Освен това, реших пак да променя дизайна вътрешно. След като малко се позамислих, разбрах как точно ще станат нещата с процесора, аба направо преоткрих топлата вода

. Исках да го правя по моя начин отначало - всяка команда се изпълнява точно на един такт, обаче не се получава така. Каквото и да правя с тоя процесор - няма да има достатъчен брой команди и няма да върше никаква полезна работа. Сега направих една псевдодиаграма, по-нататък като я изчистя ще я кача тук, та идеята е че имам 2 брояча предполагам че ще бъдат повече от 4 бита, (щото иначе няма да има смисъл за 16бита програма да го правя) - поне 8 може и повече, това ще стане като свържа 2 4бит. брояча и ги направя като един. Ще се получи буквално нещо като вложен цикъл. Малкия брояч ще е свързан със един малък РОМ, който ще пази подинструкциите, който отиват към дешифратора. За него ще бъде свързан и клока. Големия брояч ще бъде свързан със програмната памет, или по-скоро с адресната шина, защото планирам да добавя и рам. Една примерна програма на процесора + теоретичното и изпълнение :
LDA 5
INCA
OUTA
Това ще бъде записано в първата памет - основната - тази която е на по-високо ниво. Когато се пусне въпросната памет клока от по-малкия брояч ще започне да щрака от адрес 0, които е зареждането на регистър А от въпросната памет. Да кажем че командата в десетична система ще бъде на адрес 5 на малкия РОМ. Зарежда се в подброяча 5 и почва да брои нагоре - 5..6..7..8.. и така докато не стигне края на подкоманда.
В по-малкия ром с подпрограмите ще име следните команди :
LDA O1
адрес команда
5 прочети следващия запис в паметта, без да го зареждаш в брояча
6 запиши данни от шината в регистъра
7 зареди следваща команда
Така малкия брояч ще щрака от 5 до 7 и след това ще зареди следващата комадна, като просто щракне един път клока на главния брояч. По този начин операндите и командите ще текат през една и съща шина, а всяка команда може да се изпълни на колкото трябва такта.
INCA
8 зареди рег. А в АЛУ
9 събери А с 1
10 запиши резултата в акумулатора
11 зареди рег.А с акумулатора
12 зареди следваща команда
OUTA
13 тука командата е НОП, за да не се счупи нещо

14 зареди в акумулатора от рег.А
15 откачи паметта от шината за данни
16 изведи акумулатора в шината за данни
17 закачи паметта
18 зареди следваща команда
Общо взето ще е нещо такова има още неща да обяснявам но мисля, че ще е по-добре като ги нарисувам. Ще имам регисътр с флагове за условните прескачания, вътрешна шина по която са свързани всички регистри, стека и блока за аритметика, но това в другия пост. Надявам се да сте ме разбрали

.