Написать программу вычисления выражения - Assembler
Формулировка задачи:
z={x^2/8 3<x<15
_={17x+25 в остальных случаях
|\
|
|
Система
Решение задачи: «Написать программу вычисления выражения»
textual
Листинг программы
;z={x^2/8 3<x<15 ;z={17x+25 в остальных случаях .model small .386 .stack .data x db 9 z dw ? .code start: mov ax, @data mov ds, ax mov bx,0F03h ; bh=15, bl=3 mov al, [x] cmp al, bh jae non_lim cmp al, bl jb non_lim ;z=x^2/8 cbw imul ax, ax ;x^2, dx нафиг не нужен sar ax, 3 ;x/8 jmp done ; вне диапазона non_lim: cbw imul ax, 17 sub ax, 25 done: mov [z], ax mov ax, 4c00h int 21h end start
Объяснение кода листинга программы
Выполняемая программа вычисляет значение выражения, используя математические операции, в зависимости от значения переменной x
. Код программы состоит из двух частей:
- Если значение
x
находится в диапазоне от 3 до 15, то выполняется следующая последовательность операций:- Переменная
x
умножается на саму себя (x^2), затем результат делится на 8 (x^2/8). - Значение переменной
z
устанавливается равным результату вычислений.
- Переменная
- Если значение
x
находится вне диапазона от 3 до 15, то выполняется следующая последовательность операций:- Переменная
x
умножается на 17, затем из результата вычитается 25 (17x+25). - Значение переменной
z
устанавливается равным результату вычислений. В конце программы значение переменнойz
записывается в память.
- Переменная
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д