Вычислить значение кусочной функции - Assembler (248232)
Формулировка задачи:
Вычислить значение функции
у= х^2, если 1<=х<=4
у(х) = х^2-5*х+1, если 5<=х<=10
0 в остальных случаях.
Решение задачи: «Вычислить значение кусочной функции»
textual
Листинг программы
mov al,x sub al,1 cmp al,3 jbe one mov al,x sub al,5 cmp al,5 jbe two jmp three one: mov al,x imul al mov y,al jmp exit two: mov al,x imul al mov bl,al mov al,x mov cl,5 imul cl sub bl,al inc bl mov y,bl jmp exit three: mov y,0 exit:
Объяснение кода листинга программы
mov al,x
— перехват значенияx
в регистрal
.sub al,1
— вычитание единицы из значения в регистреal
.cmp al,3
— сравнение значения в регистреal
с 3.jbe one
— переход на меткуone
, если значение в регистреal
меньше или равно 3.mov al,x
— перехват значенияx
в регистрal
.sub al,5
— вычитание 5 из значения в регистреal
.cmp al,5
— сравнение значения в регистреal
с 5.jbe two
— переход на меткуtwo
, если значение в регистреal
меньше или равно 5.jmp three
— переход на меткуthree
.one:
— начало меткиone
.mov al,x
— перехват значенияx
в регистрal
.imul al
— умножение значения в регистреal
на 2 (так какal
является регистром для аккумулятора, и его значение не будет изменено до следующего действия).mov y,al
— перехват значения в регистреal
в переменнуюy
.jmp exit
— переход на меткуexit
.two:
— начало меткиtwo
.mov al,x
— перехват значенияx
в регистрal
.imul al
— умножение значения в регистреal
на 2.mov bl,al
— перехват значения в регистреal
в переменнуюbl
.mov al,x
— перехват значенияx
в регистрal
.mov cl,5
— перехват значения 5 в регистрcl
.imul cl
— умножение значения в регистреcl
на 2.sub bl,al
— вычитание значения в регистреal
из значения в регистреbl
.inc bl
— увеличение значения в регистреbl
на единицу.mov y,bl
— перехват значения в регистреbl
в переменнуюy
.jmp exit
— переход на меткуexit
.three:
— начало меткиthree
.mov y,0
— перехват значения 0 в переменнуюy
.exit:
— конец меткиexit
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д