Вычислить значение выражения 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.
- Вывод результата вычисления на экран.
- Ожидание нажатия клавиши.
- Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д