----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||62 /r BOUND r16,m16&16 7 Проверка, находится ли r16 в || пределах границ (тест пройден)||62 /r BOUND r32,m32&32 7 Проверка, находится ли r32 в || пределах границ (тест пройден)|---------------------------------------------------------------- Работа команды IF (LeftSCR < [RightSCR] OR LeftSCR > [RightSCR + Operandsize/8]) (* Ниже нижней границы или выше верхней границы массива *)THEN Прерывание 5;FI; ОписаниеКоманда BOUND обеспечивает, что имеющий знак индекс массива находится впределах границ, заданных блоком памяти, включающего в себя верхнюю инижнюю границы массива. Каждая граница использует одно слово, если атрибутразмера операнда равен 16 битам, и двойное слово, если атрибут размераоперанда равен 32 битам. Первый операнд (регистр) должен быть больше илиравен первой границе в памяти (нижней границе) и меньше или равен второйгранице в памяти (старшей границе), плюс число байтов, занимаемых дляданного размера операнда. Если регистр не находится в этих границах, топроисходит прерывание 5; EIP возврата указывает на команду BOUND.Структура данных о границах массива обычно помещается в память до самогомассива, делая границы адресуемыми через константу смещения относительноначала массива. Изменяемые флагиОтсутствуют. Исключения защищенного режимаПрерывание 5 при нарушении границ массива; #GP(0) в случае недопустимогоисполнительного адреса операнда памяти в сегментах CS, DS, ES, FS или GS;#SS(0) в случае недопустимого адреса в сегменте SS; #PF(код сбоя) в случаестраничного сбоя; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. Второй операнд должен являться операндом памяти, а не регистром. Есликоманда BOUND выполняется с байтом ModR/M, представляющим второй операндкак регистр, происходит #UD. Исключения режима реальных адресовПрерывание 5 при нарушении границ массива; прерывание 13, если какая-либочасть операнда лежит вне пространства исполнительных адресов от 0 до0FFFFH; прерывание 6, если второй операнд является регистром. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.