Вычислить значение выражения a*5-(b+c+d)/2 - Assembler

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

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

Всем привет. Помогите, пожалуйста, написать программу на Assembler, вычисляющую значение выражения. Вот то самое выражение: a*5-(b+c+d)/2 Заранее спасибо)

Решение задачи: «Вычислить значение выражения a*5-(b+c+d)/2»

textual
Листинг программы
; FASM code........
; целочисленная арифметика (без остатка)
; выводит на экран числа 0-99
format mz
org 100h
jmp start
 
mes0   db   13,10,' FORMULA: a*5-(b+c+d)/2'
       db   13,10,' A=9, B=0, C=2, D=3'
       db   13,10,' -------------------------'
       db   13,10,' RESULT: $'
 
start:
       mov   ah,9          ; мессага
       mov   dx,mes0       ;
       int   21h           ;
 
       xor   ax,ax         ;
       mov   al,9          ;
       imul  ax,5          ; А*5
 
       xor   bx,bx         ;
       mov   bl,0          ;
       add   bl,2          ;
       add   bl,3          ; (b+c+d)
       shr   bx,1          ;    ../2
 
       sub   ax,bx         ; a*5-(b+c+d)/2
 
       aam                 ; распаковываем результат (BCD)
       or    ax,3030h      ; переводим его в символы
       xchg  ah,al         ;
       int   29h           ;
       xchg  ah,al         ;
       int   29h           ; выводим на экран
 
exit:  xor   ax,ax         ; ждём клавишу..
       int   16h           ;
       mov   ax,4c00h      ;
       int   21h           ; выход!

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

Cписок действий в коде:

  1. Вывод на экран сообщения с формулой и значениями переменных.
  2. Переход к метке start.
  3. Вычисление значения выражения a*5-(b+c+d)/2.
  4. Вывод результата вычисления на экран.
  5. Ожидание нажатия клавиши.
  6. Выход из программы.

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


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

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

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