Вычислить выражение - Assembler (223269)

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

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

Здравствуйте, можете помочь с задачей?????? Нужно на ассемблере вычислить выражение y=(〖5a〗^2-d^3)/(e^2+x^2)

Решение задачи: «Вычислить выражение»

textual
Листинг программы
  1. .model small
  2.  
  3. .stack 100h
  4.  
  5. .data
  6. a       dw      5
  7. d       dw      -7
  8. e       dw      12
  9. x       dw      -6
  10. y       dw      ?
  11. .code
  12.  
  13. main    proc
  14.         mov     ax,     @data
  15.         mov     ds,     ax
  16.  
  17.         mov     ax,     e
  18.         imul    ax
  19.         mov     cx,     ax
  20.         mov     ax,     x
  21.         imul    ax
  22.         add     cx,     ax
  23.  
  24.         mov     ax,     d
  25.         imul    d
  26.         imul    d
  27.         mov     si,     dx
  28.         mov     di,     ax
  29.         mov     ax,     5
  30.         imul    a
  31.         imul    ax
  32.         sub     ax,     di
  33.         sbb     dx,     si
  34.         idiv    cx
  35.         mov     y,      ax
  36.  
  37.         mov     ax,     4C00h
  38.         int     21h
  39. main    endp
  40.  
  41. end     main

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

  1. Объявлены переменные на сегменте данных: a, d, e, x, y. Значения переменных: a=5, d=-7, e=12, x=-6, y еще не определена.
  2. Загрузка сегмента данных в регистр ax.
  3. Переменная e умножается на ax (e=12*5=60).
  4. Результат умножения (60) добавляется к переменной cx (x=60).
  5. Переменная d умножается на ax (d=(-7)*5=-35).
  6. Результат умножения (-35) добавляется к переменной cx (x=-35+60=25).
  7. Переменная d снова умножается на ax (d=(-7)*25=-175).
  8. Результат умножения (-175) добавляется к переменной dx (dx=-175).
  9. Переменная a умножается на ax (a=5*5=25).
  10. Результат умножения (25) вычитается из переменной ax (ax=25-(-175)=200).
  11. Результат вычитания (200) сохраняется в переменной dx (dx=200).
  12. Переменная cx делятся на переменные ax и dx (x=25/200=0,5).
  13. Переменная y инициализируется значением переменной ax (y=0,5).
  14. Запись в стандартный вывод сообщения Press any key to continue....
  15. Код завершается.

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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