Во втором случае очевидно, что команда MOV (PC),(PC)+ именно перепрыгивает следующую и поэтому число "пройденных" слов нужно делить на 2.
...
А в первом случае - просто интересно, как получается такая большая разница в результатах тестов.
Ведь линейный движок тестирования продолжительности команд элементарно прост - после первого прерывания начинает выполняться последовательность тестируемых команд, а после второго прерывания - вычисляется разница адреса старта последовательности и адреса входа во второе прерывание.
Увы, циклический тест с командами MOV (PC), R0 и MOVB (PC), R0 не дружит.
Весьма похоже, что тест TSSPD даёт ошибочные результаты в обоих обсуждаемых случаях.Код:OpBuf: .BLKW 2048 ;Буфер для тестируемых команд OpBufEnd: INC R4 ;Увеличиваем счетчик циклов JMP (R5) ;Бесконечный цикл --> OpBufLoop
Последний раз редактировалось Alex_K; 16.02.2019 в 23:36.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Для комплексной проверки глюков команды MOV (PC), R0, наблюдавшихся в тесте MOVPC.SAV - готова специальная версия этого теста: MovPCx, перехватывающая Trap_To_4, ведущая два счётчика циклов ( в начале и конце тестовой последовательности ) и перехватывающая плохие переходы:
При первом запуске теста можно ввести значение тактовой частоты тестируемого процессора в килогерцах, а также задать значение PSW при котором будет выполняться тест ( допустимы значения 0 и 340, любое другое значение превратится в 340 ).Код:Foot0: Nop Nop Nop Dec R5 BEq 1$ Jmp @#LoopStart .Word Bad.Jmp 1$: Mov #R.T.I, @#100 Inc R4 MTPS #0 Return Foot1:
...
Последний раз редактировалось Patron; 27.02.2013 в 20:58.
Последний раз редактировалось Alex_K; 16.02.2019 в 23:40.
Код в том месте такой:
Код:011220 [000000]: MOV (PC), R0 ; 011222:011700 -> R0 011222 [000000]: MOV (PC), R0 ; 011224:011700 -> R0 011224 [000000]: MOV (PC), R0 ; 011226:011700 -> R0 011226 [000000]: MOV (PC), R0 ; 011230:000240 -> R0 011230 [000000]: NOP 011232 [000000]: NOP 011234 [000000]: NOP 011236 [000000]: DEC R5 ; 011240 [000000]: BEQ 011250 011242 [000000]: JMP @#005306Код:Foot0: Nop Nop Nop Dec R5 BEq 1$ Jmp @#LoopStart .Word Bad.Jmp 1$: Mov #R.T.I, @#100 Inc R4 MTPS #0 Return Foot1:
---------- Post added at 21:31 ---------- Previous post was at 21:24 ----------
А на другой машине, помнится, пока та была холодная - тест один раз не просто без вылета, а даже и почти без глюков прошёл..
---------- Post added at 21:33 ---------- Previous post was at 21:31 ----------
По счётчикам команда BEQ вылететь в Trap_To_4 вряд ли может - слишком далеко до ближайшей незанятой памяти.
Последний раз редактировалось Patron; 27.02.2013 в 22:56.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)