русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

SHRD - Сдвиг вправо двойной точности


Дата добавления: 2015-06-12; просмотров: 598; Нарушение авторских прав


-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||0F AC SHRD r/m16,r16,imm8 2/3 r/m16 принимает результат SRL || для r/m16, конкатенированного || с r16 ||0F AC SHRD r/m32,r32,imm8 2/3 r/m32 принимает результат SHR || для r/m32, конкатенированного || с r32 ||0F AD SHRD r/m16,r16,CL 3/4 r/m16 принимает результат SHR || для r/m16, конкатенированного || с r16 ||0F AD SHRD r/m32,r32,CL 3/4 r/m32 принимает результат SHR || для r/m32, конкатенированного || с r32 |----------------------------------------------------------------- Работа команды (* счетчик - это целое без знака, соответствующее последнемуоперанду команды, либо непосредственно заданному байту, либобайту в регистре CL *)ShiftAmt <- счетчик MOD 32;inBits <- регистр; (* Разрешены перекрывающиеся операнды *)IF ShiftAmt = 0THEN нет операции (* no operation *)ELSE IF ShiftAmt >= OperandSize THEN (* Неверные параметры *) r/m <- не определен; CF, OF, SF, ZF, AF, PF <- не определены; ELSE (* Выполнение сдвига *) CF <- BIT[r/m, ShiftAmt - 1]; (* Последний бит, сдвинутый на выходе из операнда *) FOR i <- 0 TO OperandSize - 1 - ShiftAmt DO BIT[r/m, i] <- BIT[r/m, i - ShiftAmt]; OD; FOR i <- OperandSize - ShiftAmt TO OperandSize - 1 DO BIT[r/m, i] <- BIT[inBits, i + ShiftAmt - OperandSize]; OD; Установка SF, ZF, PF (r/m); (* SF,ZF и PF устанавливаются согласно значению результата *) AF <- не определен. FI;FI; ОписаниеКоманда SHRD выполняет сдвиг вправо первого операнда, определяемого полемr/m, на число битов, задаваемое операндом - счетчиком. Второй операнд (r16или r32) обеспечивает биты, в которые происходит сдвиг слева (начиная с31). Результат записывается обратно в операнд r/m. Регистр остаетсянеизмененным.Операнд - счетчик задается либо непосредственным байтом, либо содержимымрегистра CL. Эти операнды берутся по модулю 32, задавая число от 0 до 31,на которое происходит сдвиг. Поскольку сдвигаемые биты обеспечиваютсязаданными регистрами, эту операцию полезно использовать для сдвиговоперандов повышенной точности (64 бита и более). Флаги SF, ZF и PFустанавливаются в соответствии с результатом. Флаг CF устанавливаются взначение последнего бита, удаленного сдвигом из операнда. Флаги OF и AFнеопределены. Изменяемые флагиФлаги SF, ZF и PF устанавливаются в соответствии с результатом; флаг CFустанавливаются в значение последнего бита, удаленного сдвигом изоперанда; после сдвига на одну позицию бита флаг OF устанавливается, еслипроизошло изменение знака, в противном случае он очищается; после сдвигаболее чем на одну битовую позицию флаг OF неопределен; флаг AFнеопределен, за исключением случая, когда счетчик сдвига был равен нулю,что не влияет на состояния флагов. Исключения защищенного режима#GP(0), если назначением является сегмент, недоступный для записи; #GP(0)в случае недопустимого исполнительного адреса операнда памяти в сегментахCS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса в сегменте SS;#PF(код сбоя) в случае страничного сбоя; #AC для невыравненной ссылки кпамяти при текущем уровне привилегированности, равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев. #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.


<== предыдущая лекция | следующая лекция ==>
SHLD - Сдвиг влево двойной точности | SLDT - Сохранение регистра локальной таблицы дескрипторов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.76 сек.