ТОР 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 не позволяют прямо разделить на непосредственное значение; его надо предварительно загрузить в регистр или ячейку памяти.
Не нашли, что искали? Воспользуйтесь поиском:
|