Математический расчет в Ассемблере - Assembler (223612)
Формулировка задачи:
Здравствуйте. будьте добры помочь, не могу найти ошибку в коде, конкретно тут.
программа выдает неверные значения, что может быть не так?
Листинг программы
- ;----------------------------------
- ;расчет z=(x^3-y)/12y
- ;--------------------------------
- xor eax,eax
- xor edx,edx
- mov al, y
- mov dl, 12
- imul dl ;ax=12*y
- push EAX
- xor eax,eax
- mov al,x
- shl al,3 ;x^3
- sub ax,3 ; x^3-3
- mov DX,AX
- pop EAX
- xor EDX,EDX
- div EAX ; ax=z
Решение задачи: «Математический расчет в Ассемблере»
textual
Листинг программы
- mov al,[X]
- cbw ;ax=X
- mov bx,ax ;bx=X
- imul al ;ax=al*al
- imul bx ;dx:ax=ax*bx (X^3)
- mov bl,[Y]
- xor bh,bh ;cx=Y
- sub ax,bx
- sbb dx,0 ;dx:ax=dx:ax-bx (X^3-Y)
- imul bx,bx,12 ;bx=Y*12
- idiv bx ;ax=dx:ax/bx (X^3-Y)/(12*Y), dx=остаток
- ret
- X db 7
- Y db 3
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д