Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Команды DIV и IDIV



Подобно команде MUL, команда DIV может быть представлена в трех различных форматах в зависимости от типа операнда (операнд служит делителем, а делимое находится в фиксированном месте):

DIV r/m8 DIV r/ml6 DIV r/m32

В 8-битной форме переменный операнд (делитель) может быть любым 8-битным регистром или адресом памяти. Делимое содержится в АХ. Результат сохраняется так: частное — в AL, остаток — в АН.

АХ/(r/m8) —> AL, остаток —> АН

В 16-битной форме операнд может быть любым 16-битным регистром или адресом памяти. Второй операнд всегда находится в паре DX:AX. Результат сохраняется в паре DX:AX (DX — остаток, АХ — частное).

DX:AX/(r/ml6) —> АХ, остаток —> DX

В 32-разрядной форме делимое находится в паре EDX:EAX, а результат записывается в пару EDX:EAX (частное в ЕАХ, остаток в EDX).

EDX:EAX/(r/m32) —> ЕАХ, остаток —> EDX

Команда IDIV используется для деления чисел со знаком, синтаксис ее такой же, как у команды DIV.

Пример 1: разделить 13 на 2, частное сохранить в BL, а остаток в — ВН:

mov ах,13; АХ = 13

mov cl,2; CL = 2

div cl; делим на CL

mov bx,ax; ожидаемый результат находится

; в АХ, копируем в ВХ

Пример 2: вычислить радиус по диаметру, значение которого сохранено в 16-битной переменной diameter1, результат записать в radius1, а остаток проигнорировать.

mov ax,[diameter1]; AX = diameter1

mov bl,2; загружаем делитель 2

div bl; делим

mov [radiusl],al; сохраняем результат





Дата публикования: 2014-11-28; Прочитано: 380 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...