Что делает ловушка инструкции по сборке?
" РТФМ"
Программа обычно выдает программную ловушку, когда программа требует обслуживания операционной системой. Общий обработчик исключений для операционной системы определяет причину прерывания и реагирует соответствующим образом.
Является ли инструкция по сборке ловушкой похожа на инструкцию TRAP в BASIC? Ответ, кажется, да. Можете ли вы принять или отклонить мой вывод?
Код для "без перерыва" в соответствии с моими инструкциями:
noint:
PUSH r8
movia r8,0x003b683a # machine code for TRAP
ldw et,-4(ea) # read instr closest to return
cmpeq et,et,r8 # compare
POP r8
bne et,r0,TrapHandler # if equal, jump to traphandler
Обновить
AFAIK в бейсике вы можете написать, например,
10 TRAP 20
сделать строку 20 строкой для обработки ошибки.
2 ответа
Не уверен, что TRAP делает в бейсике, но TRAP
инструкция в руководстве по сборке, которое вы связали, генерирует аппаратное исключение, которое может обрабатываться операционной системой.
Программисту редко требуется использовать эту инструкцию в своем коде. Типичным его использованием является вставка отладчиком в отлаживаемый код в точке, где требуется остановка (точка останова), затем запуск / продолжение программы и восстановление управления после TRAP
инструкция достигнута.
Пользовательские процессы могут добровольно перейти в ядро операционной системы, чтобы запросить ядро выполнить какую-либо операцию от имени пользователя. Системный вызов - это любая процедура, предоставляемая ядром, которая может быть вызвана на уровне пользователя. Большинство процессоров реализуют системные вызовы, используя специальную инструкцию прерывания.