Деление со знаком - Assembler
Формулировка задачи:
Нужно разделить две переменные размером в слово, и поместить результат в переменную у. как это сделать с помощью idiv?
Решение задачи: «Деление со знаком»
textual
Листинг программы
- .data
- A dw 4630h ; делимое
- B dw 2520h ; делитель
- Y dw 0,0 ; 2 слова - целое и остаток
- .code
- start: ;
- mov ax,[A] ;
- xor dx,dx ; очищаем место под остаток
- idiv [B] ;
- mov [Y],ax ; сохраняем целое
- mov [Y+2],dx ; ..и остаток
Объяснение кода листинга программы
- В сегменте .data объявлены три переменные: A) dw 4630h — делимое, B) dw 2520h — делитель, Y) dw 0,0 — две переменные (целое и остаток),
- В сегменте .code находится точка входа start:
- Первый шаг — переместить значение делимого в регистр ax: mov ax,[A]
- Очистить место под остаток: xor dx,dx
- Выполнить деление: idiv [B]
- Сохранить целое в переменную Y: mov [Y],ax
- Сохранить остаток в переменную Y+2: mov [Y+2],dx
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д