А подскажите пожалуйста про особенности выполнения инструкций которые прерываются по таймауту RPLY для ВМ2 (или ВМ1).
Вот есть инструкция
Код:
MOV (R0)+, (R1)+
Если @R0 нормально прокатывает по шине, а @R1 нет (вызывает таймаут). То какие значения регистров будут, когда начнётся выполнение прерывания? Увеличится ли R0 на два, прежде чем трапнет? Или увеличение регистров по автоинкременту происходит после успешных транзакций?
А уменьшение происходит до всех транзакций? То есть, если
Код:
MOV -(R0), -(R1)
трапает на адресе (R0-2), на входе в прерывание R0 будет уже уменьшен? А R1?
В целом вопрос такой: если выполнение команды прерывается по RPLY, то все регистры остаются в исходном состоянии, как перед выполнением, или автоинкремент/автодекремент выполняется? И PC указывает на команду которая вызвала трап или на следующую? Предполагаю, что на входе в перывание все регистры будут ниходиться в исходном состоянии (как до выполнения инструкции), но хотелось бы авторитетного подтверждения этой догадке.