Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






В) команды умножения




Команда MUL (multiply - умножить) умножает числа без знака, а IMUL (integer multiply - умножить целые числа) - числа со знаком. Обе команды умножают как байты, так и слова. Команды имеют формат:

MUL источник,

IMUL источник,

где источник - регистр общего назначения или ячейка памяти размером в байт или слово. В качестве второго операнда команды MUL и IMUL используют содержимое регистра AL (при операциях над байтами) или регистра АХ (при операциях над словами). Произведение имеет двойной размер и размещается следующим образом:

- при умножении байтов 16-битовое произведение находится в регистрах AH (старший байт) и AL (младший байт).

- при умножении слов 32-битовое произведение находится в регистрах DX (старшее слово) и AX (младшее слово).

При завершении исполнения этих команд флаги переноса CF и переполнения OF показывают, какая часть произведения существенна для последующих операций. После исполнения команды MUL флаги CF и OF равны 0, если старшая половина произведения равна 0; в противном случае оба эти флага равны 1. После исполнения команды IMUL флаги CF и OF равны 0, если старшая половина произведения представляет собой лишь расширение знака младшей половины. В противном случае они равны 1.

Команды MUL и IMUL не позволяют в качестве операнда использовать непосредственное значение. Такое значение перед умножением надо загрузить в регистр или в ячейку памяти.

 

 

Г) команды деления

Команда DIV (divide - разделить) выполняет деление чисел без знака, а команда IDIV (integer divide - разделить целые числа) выполняет деление чисел со знаком. Эти команды имеют формат:

DIV источник,

IDIV источник,

где источник - делитель размером в байт или слово, находящийся в регистре или ячейке памяти. Делимое должно иметь двойной размер и храниться в регистрах AH и AL (при делении на 8-битовое число) или в регистрах AX и DX (при делении на 16-битовое число). Результаты деления размещаются следующим образом:

- если операнд-источник представляет собой байт, то частное помещается в регистр AL, а остаток в регистр AH;

- если операнд-источник представляет собой слово, то частное помещается в регистр AX, а остаток - в регистр DX.

Обе команды оставляют состояние регистра флагов неопределенным, но если частное не помещается в регистр-приемник (AL или AX), то МП генерирует прерывание типа 0 (деление на 0).

Команды DIV и IDIV не позволяют прямо разделить на непосредственное значение; его надо предварительно загрузить в регистр или ячейку памяти.

 




Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2018 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных