Программа неправильно выполняет последнюю операцию деления - Assembler

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

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

Почему программа не правильно выполняет последнюю операцию деления a4 / (-a3)? Нужна помощь!

Решение задачи: «Программа неправильно выполняет последнюю операцию деления»

textual
Листинг программы
;a4/(-a3)
;   xor edx, edx
;   mov eax, a4
;   xor ebx, ebx
;   mov bx, a3
;   div ebx
;   neg eax
;   mov res_4, eax
 
    mov ax, a3
    cwde
    neg eax
    mov ebx, eax
    mov eax, a4
    cdq
    idiv    ebx
    mov res_4, eax

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

  1. Устанавливаются значения двух регистров: edx = 0 и eax = a4.
  2. Выполняется операция деления eax на bx, результат сохраняется в eax.
  3. Результат деления сохраняется в переменной res_4.
  4. Загружается значение переменной a3 в регистр ax.
  5. Выполняется преобразование регистра ax в десятичное значение и сохраняется в eax.
  6. Регистр ebx устанавливается равным eax.
  7. Загружается значение переменной a4 в регистр eax.
  8. Выполняется преобразование регистра eax в десятичное значение и сохраняется в eax.
  9. Регистр eax используется как индекс для обращения к памяти и сохранения результата в переменную res_4.
  10. Выполняется операция деления eax на ebx, результат сохраняется в eax.
  11. Результат деления сохраняется в переменной res_4.

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

5   голосов , оценка 4.2 из 5
Похожие ответы