
Сообщение от
Vslav
Как видно - записываются нулевые значения обоих стеков. Маловероятно что это специальные осмысленные значения, просто так триггеры установились по включению.
А уменя, наборот - есть подозрение, что R0..R6 у ВМ3 при включении питания обнуляются. Узнать ответ легко - последовательность MOV Rx,(PC)+ нас рассудит.

Сообщение от
Vslav
Выполнение всего теста в анализатор не влазит
Не проблема - сделаем два теста:
1. Тест стеков :
Код:
.ASect
. = 0
Jmp @#Next // Точка входа пульта.
. = 24
.Word Start // Адрес старта.
.Word 340
Start:
Mov #2, R1
Mov #177776, R2 // Адрес PSW
Mov #140340, (R2) // Установить USER-моду
Mov #4444, SP // Стек USER-моды
Mov #340, (R2) // Установить KERNEL-моду
Mov #2222, SP // Стек KERNEL-моды
HALT // Установить HALT-моду
Next:
Mov (R2), (R1) // Прочитать PSW
Call Next2 // Где сохранит PC ?
Next2:
Mov SP, (R1) // Какой стек ?
Tst (SP) // Откуда прочитает ?
Mov #140340, (R2) // Выбрать стек USER
Mov SP, (R1) // Какой стек ?
Mov #340, (R2) // Выбрать стек KERNEL
Mov SP, (R1) // Какой стек ?
Br .-2.
2. Тест зависания :
Код:
.ASect
. = 0
Jmp @#Next // Точка входа пульта.
. = 24
.Word Start // Адрес старта.
.Word 340
Start:
HALT // Установить HALT-моду
Next:
Mov #177600, @#172512 // PARH2 -> IO Page
Tst @#100000 // Чтение 17760000 вызовет зависание
Nop
Br .-2.