Вычислить значение выражения 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писок действий в коде:
- Вывод на экран сообщения с формулой и значениями переменных.
- Переход к метке
start
. - Вычисление значения выражения a*5-(b+c+d)/2.
- Вывод результата вычисления на экран.
- Ожидание нажатия клавиши.
- Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д