русс | укр

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

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

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

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


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

IMUL - Умножение со знаком


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


-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||F6 /5 IMUL r/m8 13-18/13-18 AX <- AL * байт r/m ||F7 /5 IMUL r/m16 13-26/13-26 DX:AX <- AX * слово r/m ||F7 /5 IMUL r/m32 12-42/13-42 EDX:EAX <- EAX * двойное || слово r/m ||0F AF /r IMUL r16, 13-26/13-26 регистр-слово <- регистр- || r/m16 слово * слово r/m ||0F AF /r IMUL r32, 13-42/13-42 регистр-двойное слово <- || r/m32 регистр-двойное слово * || двойное слово r/m ||6B /r ib IMUL r16, 13-26/13-26 регистр-слово <- r/m16 * || r/m16,imm8 расширенный знаком непосред-|| ственный байт ||6B /r ib IMUL r32, 13-42/13-42 регистр-двойное слово <- || r/m32,imm8 r/m32 * расширенный знаком || непосредственный байт ||6B /r ib IMUL r16, 13-26 регистр-слово <- регистр- || imm8 слово * расширенный знаком || непосредственный байт ||6B /r ib IMUL r32, 13-26 регистр-двойное слово <- || imm8 регистр-двойное слово * рас-|| ширенный знаком непоср.байт ||69 /r iw IMUL r16, 13-26/13-26 регистр-слово <- r/m16 * || r/m16,imm16 непосредственное слово ||69 /r id IMUL r32, 13-42/13-42 регистр-двойное слово <- || r/m32,imm32 r/m32 * непосредственное || двойное слово ||69 /r iw IMUL r16, 13-26/13-26 регистр-слово <- r/m16 * || imm16 непосредственное слово ||69 /r id IMUL r32, 13-42/13-42 регистр-двойное слово <- || imm32 r/m32 * непосредственное || двойное слово |----------------------------------------------------------------- Примечания: Процессор i486 использует алгоритм умножения типа "early-out".Фактическое число тактовых циклов зависит от позиции наиболее значащегобита в оптимизируемом множителе. Оптимизация выполняется как дляположительных, так и для отрицательных значений. Вследствие данногоалгоритма даются минимальные и максимальные количества тактовых циклов.Для вычисления фактического числа тактовых циклов используется следующаяформула: Фактическое число тактовых циклов = если m <> 0 тоmax(наименьшее целое число, большее (log |m|)) + 6 циклов. 2Фактическое число тактовых циклов = если m = 0 то 9 циклов.(где m это множитель) Если множитель есть операнд памяти, то прибавляется три цикла.Работа командырезультат <- множимое * множитель ОписаниеКоманда IMUL выполняет умножение со знаком. Некоторые формы этой командыиспользуют неявные операнды-регистры. Комбинации операндов для всех формкоманды показаны в колонке "Описание" выше. Команда IMUL очищает флаги OF и CF в следующих условиях: ----------------------------------------------------------------- Форма команды | Условие очистки флагов CF и OF----------------------------------------------------------------- r/m8 AL = расширение знаком AL до 16 битов r/m16 AX = расширение знаком AX до 32 битов r/m32 EDX:EAX = расширение знаком EAX до 16 битов r16,r/m16 Результат в точности помещается в r16 r32,r/m32 Результат в точности помещается в r32 r16,r/m16,imm16 Результат в точности помещается в r16 r32,r/m32,imm32 Результат в точности помещается в r32----------------------------------------------------------------- Изменяемые флаги Флаги OF и CF описаны выше в разделе "описание"; флаги SF, ZF,AF, PF не определены. Исключения защищенного режима#GP(0) в случае недопустимого исполнительного адреса операнда памяти всегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса всегменте SS; #PF(код сбоя) в случае страничного сбоя; #AC дляневыравненной ссылки к памяти при текущем уровне привилегированности,равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. ПримечанияПри использовании некоторых форм аккумулятора (IMUL r/m8, IMUL r /m16 илиIMUL r/m32) результат умножения доступен даже при установленном флагепереполнения, поскольку размер результата в два раза превышает размермножимого и множителя. Это достаточно для обработки любого возможногорезультата.


<== предыдущая лекция | следующая лекция ==>
IDIV - Деление со знаком | IN - Ввод из порта


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


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

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

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


 


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

 
 

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

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