Деление -7 / -32 - Assembler

Узнай цену своей работы

Формулировка задачи:

emu8086 По заданию надо разделить -7 на -32. С положительными числами ( 7/32 )все правильно получаю в АX=#0000 в DX=#0007. Частное в AX равно 0 и остаток в DX равен 7. А с отрицательными немного не догоняю откуда такие результаты.
MOV AX,X1   ;X1/X3     Х1=-7  Х3=-32
MOV DX,0
MOV BX,X3
IDIV BX
MOV X1,AX
В итоге имею в регистре АХ = #F801, DX = #0019

Решение задачи: «Деление -7 / -32»

textual
Листинг программы
MOV AX,X1   ;X1/X3
    CWD  ;расширение делимого со знаком ax -> dx:ax 
    MOV BX,X3
    IDIV BX
    MOV X1,AX

Объяснение кода листинга программы

  1. MOV AX,X1 — в этой инструкции происходит перенос содержимого регистра X1 в регистр AX.
  2. CWD — расширение делимого со знаком, ax -> dx:ax
  3. MOV BX,X3 — в этой инструкции происходит перенос содержимого регистра X3 в регистр BX.
  4. IDIV BX — деление AX на BX, результат сохраняется в регистре AX, остаток от деления сохраняется в регистре DX.
  5. MOV X1,AX — в этой инструкции происходит перенос содержимого регистра AX в регистр X1.

Оцени полезность:

15   голосов , оценка 3.6 из 5