|
|
Фрагмент MIPS-кода обработчика исключения21.03.2019Обратите внимание на то, что в нем сохраняется и восстанавливается состояние, обращается внимание на разрешение и запрещение исключений, но для обработки конкретного исключения вызывается код на языке Си. Виртуальный адрес, ставший причиной ошибки, зависит от того, была ли это ошибка при обращении к инструкции или при обращении к данным. Адрес инструкции, которая сгенерировала ошибку, находится в ЕРС. Если ошибка произошла при обращении к странице инструкций, ЕРС содержит виртуальный адрес страницы, вызвавшей ошибку; в противном случае виртуальный адрес, вызвавший ошибку, должен быть вычислен путем изучения инструкции (чей адрес находится в ЕРС), чтобы определить базовый регистр и поле смещения. У вас в дипломе четверки? Закажите красные дипломы от Диплом-Москва99 и вы будете отличником учебы. Эта упрощенная версия предполагает, что в указателе стека (sp) находится достоверное значение. Чтобы избежать ошибки отсутствия страницы при выполнении этого низкоуровневого кода обработки исключений, MIPS выделяет часть своего адресного пространства, которая не может иметь ошибок отсутствия страниц, эта часть называется неотображаемой. Операционная система помещает код точки входа в обработчик исключений и стек обработки исключений в неотображаемую память. Оборудование MIPS переводит виртуальные адреса с 8000 0000,6 по BFFF FFFFie в физические адреса путем простого игнорирования старших разрядов виртуального адреса, помещая тем самым эти адреса в нижнюю часть физической памяти. Таким образом, операционная система помещает код входа в обработчик исключений и стеки обработки исключений в неотображаемую память.
|