TASM арифметические выражения - Assembler

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

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

Составьте программу, вычисляющую значение арифметического выражения. Результат выведите в шестнадцатеричном и двоичном виде f=(x*y-a*b)/(a+b) x = 40 y = 65 a = 25 b = 16 Доброй ночи, помогите реализовать задание человеку, что мало чего смыслит в этом деле, нужно понять алгоритм действий в принципе, решение не обязательно, но было бы здорово, заранее благодарю

Решение задачи: «TASM арифметические выражения»

textual
Листинг программы
  1. .model small
  2.  
  3. .data
  4. x db 40
  5. y db 65
  6. a db 25
  7. b db 16
  8.  
  9. .stack 100h    
  10.  
  11. .code          
  12. start:         
  13. mov ax,@data   
  14. mov ds,ax
  15.  
  16. mov al,a
  17.  
  18. mul b
  19.  
  20. xchg ax,bx
  21.  
  22. mov al,x
  23.  
  24. mul y
  25.  
  26. sub ax,bx
  27.  
  28. mov bl,b
  29.  
  30. add bl,a
  31.  
  32. div bl
  33.    
  34. mov ah,4Ch     
  35. mov al,00h     
  36. int 21h        
  37. end start

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

  1. .model small — указывает на модель сегментной памяти, в данном случае модель small, что позволяет использовать сегменты для данных и кода размером 16 бит.
  2. .data — раздел для определения данных.
  3. x db 40 - определение переменной x со значением 40.
  4. y db 65 - определение переменной y со значением 65.
  5. a db 25 - определение переменной a со значением 25.
  6. b db 16 - определение переменной b со значением 16.
  7. .stack 100h — указывает на размер стека в 100 байт.
  8. .code — раздел для определения кода.
  9. start: — определяет точку входа в программу.
  10. mov ax,@data — перемещает значение сегмента данных в регистр ax.
  11. mov ds,ax — делает сегмент данных равным значению регистра ax.
  12. mov al,a — перемещает значение переменной a в регистр al.
  13. mul b — выполняет умножение значения регистра al на значение переменной b.
  14. xchg ax,bx — меняет значения регистра ax и bx.
  15. mov al,x — перемещает значение переменной x в регистр al.
  16. mul y — выполняет умножение значения регистра al на значение переменной y.
  17. sub ax,bx — выполняет вычитание значения регистра bx из значения регистра ax.
  18. mov bl,b — перемещает значение переменной b в регистр bl.
  19. add bl,a — выполняет сложение значения регистра bl и значения переменной a.
  20. div bl — выполняет деление значения регистра bl на значение переменной bl.
  21. mov ah,4Ch — перемещает значение 4Ch в регистр ah.
  22. mov al,00h — перемещает значение 00h в регистр al.
  23. int 21h — выполняет ввод-вывод в систему.

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


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

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

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

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

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

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