Нихт гутен. RT-11 по запросам все складывает в буфер и устанавливает флаг разрешения прерывания (в 177564). А уже п/п обработки прерывания опустошает этот буфер. Так что лучше выводить через 177564/177566 в режиме опроса флага готовности без всяких прерываний.
---------- Post added at 21:01 ---------- Previous post was at 21:00 ----------
Господи!!!А там то что можно такое тестировать?
А вот так-то. Попробуй подкопайся, когда нужно управлять и ЦП, и ПП одновременно, при этом честно под системой, при этом в реальном времени меняя условия возникновения прерываний, снятия запросов и т.д.
---------- Post added at 21:08 ---------- Previous post was at 21:07 ----------
Распиши подробно на примере.
Со стороны ЦП:
Канал 0 (приемник, клавиатура) - бит прерываний все время стоит, но если не жать клавишу, то и не помешает.
Канал 0 (источник, терминал) - бит прерываний сбрасывает операционная система, когда опустошиться буфер.
Канал 1 (приемник) - вообще стандартно не используется.
Канал 1 (источник, принтер) - т.к. не используется, то и прерывания запрещены.
Канал 2 (источник) - стандартно драйвер MZ разрешает прерывания после передачи адреса массива параметров. После того как ПП выполнил работу, он читает четвертый байт и возникает прерывание в ЦП. Но т.к. программа уже прочитана, то и прерывания запрещены.
Со стороны ПП все проще - запуск п/п пользователя имеет самый низкий приоритет в диспетчере процессов, так что после того как все обработается (в том числе и вывод на экран), тогда и вызовется подпрограмма.
Так что ничего запрещать не надо, а во время теста просто не жать клавиши.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Эти тайминги (на первый взгляд) один в один совпадают с таймингами ВМ1:
С точностью до такта.Код:R0 (R0) (R0)+ @(R0)+ -(R0) @-(R0) Addr @#Addr @Tab(R0) Tst 14 29 29 42 30 43 42 42 56 TstB 14 29 29 42 30 43 42 42 56 MTPS 26 35 35 48 35 49 48 48 61 MFPS 14 41 41 54 41 55 54 54 67 XOr 14 43 43 56 44 56 56 56 70 SXt 14 41 41 54 41 55 54 54 67 SwaB 14 41 41 54 41 55 54 54 67 Clr 14 41 41 54 41 55 54 54 67 ClrB 14 41 41 54 41 55 54 54 67 Inc 14 41 41 54 41 55 54 54 67 IncB 14 41 41 54 41 55 54 54 67 Dec 14 41 41 54 41 55 54 54 67 DecB 14 41 41 54 41 55 54 54 67 AdC 14 41 41 54 41 55 54 54 67 AdCB 14 40 40 54 41 55 54 54 67 SbC 14 41 40 54 41 55 54 54 67 SbCB 14 40 41 54 41 55 54 54 67 ASL 14 41 41 54 41 55 54 54 67 ASLB 14 41 41 54 41 55 54 54 67 ASR 14 41 40 54 41 55 54 54 67 ASRB 14 41 41 54 41 55 54 54 67 RoL 14 40 41 54 41 55 54 54 67 RoLB 14 40 40 54 41 55 54 54 67 RoR 14 41 40 54 41 55 54 54 67 RoRB 14 41 41 54 41 55 54 54 67 Com 14 40 41 54 41 55 54 54 67 ComB 14 40 41 54 41 55 54 54 67 Neg 14 41 40 54 41 55 54 54 67 NegB 14 41 41 54 41 55 54 54 67 Jmp 24 26 35 35 35 48 Call 39 40 49 49 49 61
Я еще делаю перед тестом вот это:
KeyOFF: .ASCII <27><91><50><104><128>
Чтобы не реагировал на клавиши пользователя.
---------- Post added at 22:19 ---------- Previous post was at 22:17 ----------
Может быть у них и абсолютно одинаковое ядро, но предвыборка команды в ВМ2 должна влиять. Да и скорость работы памяти надо учитывать. У нас же тест на конкретном железе, с конкретной памятью.
Если команда выполняется ядром быстрее, чем цикл шины "ВВОД" ( а это справедливо для большинства регистровых команд ), то предвыборка влиять не может.
Что же до быстродействия памяти - то да, безусловно.
Потому я и удивился, что число тактов, затрачиваемых на выполнение большинства команд - совпадают в обоих тестах один-в-один.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)