Что делает ловушка инструкции по сборке?

" РТФМ"

Программа обычно выдает программную ловушку, когда программа требует обслуживания операционной системой. Общий обработчик исключений для операционной системы определяет причину прерывания и реагирует соответствующим образом.

Является ли инструкция по сборке ловушкой похожа на инструкцию 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 инструкция достигнута.

Пользовательские процессы могут добровольно перейти в ядро ​​операционной системы, чтобы запросить ядро ​​выполнить какую-либо операцию от имени пользователя. Системный вызов - это любая процедура, предоставляемая ядром, которая может быть вызвана на уровне пользователя. Большинство процессоров реализуют системные вызовы, используя специальную инструкцию прерывания.

Другие вопросы по тегам