Скачиваний:
18
Добавлен:
11.04.2015
Размер:
16.62 Кб
Скачать
  1. Команды деления:

DIV <ор> ; деление чисел без знака (divide)

IDIV <ор >; деление чисел со знаком (integer divide)

<ор> — делитель 8- или 16-битовый, находящийся в регистре общего назначения или в ячейке памяти. Делимое должно иметь двойной размер по отношению к делителю: регистры ah и al, т.е. ах (при 8-битовом делителе) или dx и ах (при 16-битовом делителе, обычно пишут dx:ax).

Результат: а) если операнд (ор) — байт, то частное от деления помещается в регистр al, а остаток в ah;

б) если операнд — слово, то частное отделения в ах, а остаток в dx. Пример: div bx ; разделить dx:ax на содержимое

bx без знака;

------; сегмент данных--------

mem_byte db 54

-------; кодовый сегмент-----

div mem_byte ; разделить ah:al на байт без знака;

idiv dl ; разделить ah:al на содержимое dl со знаком;

-----;сегмент данных----

mem_word dw 1500

----; кодовый сегмент------

idiv mem_word ; разделить dx:ax на слово со знаком. При делении на непосредственное значение необходимо поступить следующим образом:

mov bx, 20

div bx;

При выполнении команды содержимое регистров dx:ax делится на 20. Если делимое 1 200 000 (оно должно находиться в DX:AX) задано в сегменте данных в десятичной системе счисления, а делитель непосредственное значение 20, необходимо написать следующие команды: dseg segment ; начало сегмента данных

a dd 1200000 ; делимое

dseg ends ; конец сегмента данных

cseg segment ; начало кодового сегмента

assume cs:cseg,ds:dseg

start: mov ax,dseg ; занесение адреса dseg

mov ds,ax ; в регистр ds

mov bx,20 ; делитель 20 в bx

mov dx,word ptr a+2 ;старшая часть делимого в dx

mov ax,word ptr a ; младшая часть делимого в ах

div bx ; деление

mov ah,4ch ; выход в DOS

int 21h

cseg ends ; конец кодового сегмента

end start ; точка входа в программу

Соседние файлы в папке Ответы по пунктам