![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Для деления чисел без знака предназначена команда
DIV делитель.
Делитель может находиться в памяти или в регистре и иметь размер 8, 16 или 32 разряда. Местонахождение делимого фиксировано и так же, как в команде умножения, зависит от размера операндов. Результатом команды деления являются частное и остаток.
Таблица 9. – Расположение операндов и результата при делении
Делимое | Делитель | Частное | Остаток |
Слово (16 бит) в регистре AX | Байт в регистре или в ячейке памяти | Байт в регистре AL | Байт в регистре AH |
Двойное слово (32 бит), в DX – старшая часть, в AX – младшая часть | Слово (16 бит) в регистре или ячейке памяти | Слово (16 бит) в регистре AX | Слово (16 бит) в регистре DX |
Учетверённое слово (64 бит), в EDX – старшая часть, в EAX – младшая часть | Двойное слово (32 бит) в регистре или ячейка памяти | Двойное слово (32 бит) в регистре EAX | Двойное слово (32 бит) в регистре EDX |
После выполнения деления содержимое флагов неопределенно, но возможно возникновение прерывания с номером 0, называемого “деление на ноль”. Прерывание 0 при выполнении команды div может возникнуть из-за следующих причин:
· делитель равен нулю;
· частное не входит в отведенную для него разрядную сетку.
Рассмотрим деление значения в области del на значение в области delt:
.data
del_b label byte
del dw 29876
del_t db 45
.code
…
xor ax,ax
;следующие две команды можно заменить одной mov ax,del
mov ah,del_b;старший байт делимого в ah
mov al,del_b+1;младший байт делимого в al
div delt;в al – частное, в ah – остаток
…
Дата публикования: 2014-12-08; Прочитано: 473 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!