Арифметика и синтаксис на языке ассемблера - Assembler

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

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

Необходимо вычислить уравнение: Не ясны преобразования в регистрах различной разрядности... исп. FASM
format PE Console 4.0
entry Start
 
include 'win32a.inc'
 
section '.data' data readable writeable
y db 0
x db 1
a db 4                                  
b db 2
z db ?
p db ?

Start:
mov al, [x]
mul [x]
mov [z], al
mov al, [a]
mul [x]
sub [z], al
mov bl, [b]
add bl, 2
mov ax, [z]
div bl
mov ah, 0
mov [z], al
mov bl, [x]
mul [x]
mul [x]
mov  ax, bl
mov cl, 3
div cl
mov ah, 0
sub [z], ax
mov bl, [a]
mul [a]
mul [x]
sub [z], bl
 
Exit:
  invoke  ExitProcess, 0

Решение задачи: «Арифметика и синтаксис на языке ассемблера»

textual
Листинг программы
mov AL,[a]
cbw
idiv [b]; AL=a/b
sub AL,[x]; AL=a/b - x
neg AL; AL=x-a/b
imul [x]; AX=x*x - a*x/b
add AX,2; AX=x*x - a*x/b + 2
mov BX,AX; BX=x*x - a*x/b + 2
mov AL,[x]; AL = x
imul AL; AX = x*x
imul [x]; AX = x*x*x
mov CL,3; CL=3
idiv CL; AL = x*x*x/3
cbw
sub BX,AX; BX = (x*x - a*x/b + 2) - (x*x*x/3)
mov AL,[x]
imul [a]; AX=x*a
imul [a]; AX=x*a*a
sub BX,AX; BX = (x*x - a*x/b + 2) - (x*x*x/3) - (x*a*a)

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

  1. Переменная a содержит значение 2.
  2. Переменная b содержит значение 3.
  3. Переменная x содержит значение 4.
  4. mov AL,[a] - AL = a
  5. cbw - BL = a
  6. idiv [b] - AL = a/b
  7. sub AL,[x] - AL = a/b - x
  8. neg AL - AL = x - a/b
  9. imul [x] - AX = xx - ax/b
  10. add AX,2 - AX = xx - ax/b + 2
  11. mov BX,AX - BX = xx - ax/b + 2
  12. mov AL,[x] - AL = x
  13. imul AL - AX = x*x
  14. imul [x] - AX = xxx
  15. mov CL,3 - CL = 3
  16. idiv CL - AL = xxx/3
  17. cbw
  18. sub BX,AX - BX = (xx - ax/b + 2) - (xxx/3)
  19. mov AL,[x] - AL = x
  20. imul [a] - AX = x*a
  21. imul [a] - AX = xaa
  22. sub BX,AX - BX = (xx - ax/b + 2) - (xxx/3) - (xaa)

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


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

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

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