----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||63 /r ARPL r/m16,r16 9/9 Преобразование RPL r/m16 к не || менее чем RPL r16 |---------------------------------------------------------------- Работа команды IF RPL биты(0,1) в DEST < RPL биты(0,1) в SRCTHEN ZF <- 1; RPL биты(0,1) в DEST <- RPL биты(0,1) в SRC;ELSE ZF <- 0;FI; ОписаниеКоманда ARPL имеет два операнда. Первый операнд является 16-разряднойпеременной памяти или регистром-словом, содержащим значение селектора.Второй операнд - это регистр-слово. Если поле RPL ("запрашиваемый уровеньпривилегированности" - младшие два бита) первого операнда меньше поля RPLвторого операнда, то флаг ZF устанавливается, а поле RPL первого операндаувеличивается до соответствующего значения второго операнда. В противномслучае флпг ZF очищается, и первый операнд не изменяется.Команда ARPL используется в операционных системах, а не прикладныхпрограммах. Она гарантирует, что параметр селектора подпрограммы незапросит большую привилегированность, чем это позволено для вызывающейпрограммы. Вторым операндом команды ARPL обычно является регистр,содержащий значение селектора CS вызывающей программы. Изменяемые флагиФлаг ZF устанавливается, если поле RPL первого операнда меньшесоответствующего поля второго операнда. Исключения защищенного режима#GP(0), если результат должен помещаться в сегмент, для которого запрещеназапись; #GP(0) в случае недопустимого исполнительного адреса операндапамяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимогоадреса в сегменте SS; #PF(код сбоя) в случае страничного сбоя; #AC дляневыравненной ссылки к памяти при текущем уровне привилегированности,равном 3. Исключения режима реальных адресовПрерывание 6; команда ARPL в этом режиме не распознается.Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.