Еще в тесте нет команд, состоящих из трех слов, да с командой MOV неплохо бы рассмотреть все способы адресации. Тогда картина была бы полной.
Вот здесь интересно, используется ранее прочитанное для предвыборки значение, или читается nnnn заново. Следующая команда будет читаться вхолостую, т.к. при предвыборке следующая читается во время дешифрации текущей. А в этом варианте будет читаться, но дешифратор будет стоять.
Чем объясняется такая существенная разница между скоростью выполнения команд (в тактах) на ЦП и ПП? Разные значения tn? Или что-то ещё?
Написал универсальный тест IRQ.SAV, который должен позволить довольно точно вычислить время входа в прерывание и оценить время получения от устройства адреса вектора прерывания.
Требуется поддержка команд Mul и Div.
На эмуляторе ДВК ( с включенным драйвером EM ) - результаты такие:
Программа выводит сообщения через вызовы RMON, поэтому если правильно загрузиться с HX и нажать в терминале кнопку [Лог] - можно записать результаты теста в файл даже на УКНЦ.Код:.RU IRQ
IRQ - Check time of IRQ Service & RTI - v1.0
Memory Top: 130002
CPU Speed: 146 x RESET
CPU Speed: 7'585 x NOP
CPU Speed: 7'585 x MOV R0,R0
CPU Speed: 3'035 x MOV R2,(R3)
CPU Speed: 2'361 x RTI
CPU Speed: 850 x IOT
CPU Speed: 850 x TRAP
CPU Speed: 1'264 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0
CPU Speed: 823 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | RTI
CPU Speed: 508 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | IOT
CPU Speed: 508 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | TRAP
CPU Speed: 468 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | Interrupt 064
Program completed.
.