Математический расчет в Ассемблере - Assembler (223612)

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

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

Здравствуйте. будьте добры помочь, не могу найти ошибку в коде, конкретно тут.
Листинг программы
  1. ;----------------------------------
  2. ;расчет z=(x^3-y)/12y
  3. ;--------------------------------
  4. xor eax,eax
  5. xor edx,edx
  6. mov al, y
  7. mov dl, 12
  8. imul dl ;ax=12*y
  9. push EAX
  10. xor eax,eax
  11. mov al,x
  12. shl al,3 ;x^3
  13. sub ax,3 ; x^3-3
  14. mov DX,AX
  15. pop EAX
  16. xor EDX,EDX
  17. div EAX ; ax=z
программа выдает неверные значения, что может быть не так?

Решение задачи: «Математический расчет в Ассемблере»

textual
Листинг программы
  1. mov al,[X]
  2. cbw  ;ax=X
  3. mov bx,ax  ;bx=X
  4. imul al  ;ax=al*al
  5. imul bx  ;dx:ax=ax*bx (X^3)
  6.  
  7. mov bl,[Y]
  8. xor bh,bh  ;cx=Y
  9.  
  10. sub ax,bx
  11. sbb dx,0  ;dx:ax=dx:ax-bx (X^3-Y)
  12.  
  13. imul bx,bx,12 ;bx=Y*12
  14. idiv bx  ;ax=dx:ax/bx (X^3-Y)/(12*Y), dx=остаток
  15.  
  16. ret
  17.  
  18. X db 7
  19. Y db 3

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут