
Сообщение от
Hunta
после первой команды в R0 будет уже что то другое
Неее... Очищаю регистры и флаги состояния процессора предварительно перед прокручиванием забитых в ОЗУ комманд.
Код простой как валенок:
Код:
mov #COUNT1, VAR000
clr VSYCNT
30$: clr R0
clr R1
clr R2
clr R3
clr R4
clr R5
mtps #0
call PAYBUF
dec VAR000
bne 30$
; output results
...
В PAYBUF записано собственно 20 килобайт повторяющихся инструкций ash #X, R0 и самая последняя return. Сетевой таймер делает только inc VSYCNT; rti .. Потом смотрю сколько накрутило прерываний.
Понятно что совсем небольшое время добавляется на очистки регистров и организацию цикла. Но для сравнения это неважно. Четко вот время выполнения сдвига на 4 и 5 бит практически одинаково, а сдвиг на 6 бит уже прилично добавляет.
Но за идею сделать разницу спасибо, надо попробовать.
Вообщем я уже начинаю понимать насколько сложно сделать правильный эмулятор со всеми этими растактовками комманд.