Что ж, при прерываниях - «xPP содержит предыдущий режим привилегий (x = M, S или U). Поля xPP могут содержать режимы привилегий только до x, поэтому MPP имеет ширину два бита, SPP имеет ширину один бит, и UPP неявно равен нулю. "
На самом деле, сейчас я обнаружил, что инструкция xRET позволяет процессору сохранять (внутренне) текущий режим -" Инструкции MRET, SRET или URET используются для возврата из ловушек в M-режиме, S-режиме или U-режиме соответственно. При выполнении инструкции xRET, предположим, что xPP содержит значение y, x IE установлено в x PIE; режим привилегий изменен на y; x P IE установлено в 1, а xPP установлено в U (или M, если режим пользователя не поддерживается). "