Программа на языке ассемблера с полным описанием сегментов для вычисления значения y.
Программа на языке ассемблера с полным описанием сегментов для вычисления значения y.
Ответ(ы) на вопрос:
data segment
a db ?
x db ?
y db 0
y1 db 0
y2 db 0
per db 10,13,'$'
mesa db 10,13,'input a: $'
mesx db 10,13,'input x: $',10,13
data ends
stk segment stack
db 128 dup(?)
stk ends
assume cs:code, ds:data, ss:stk
code segment
start:
mov ax,data
mov ds,ax
mov dx, offset mesa
mov ah,9 ;приглашение на ввод а
int 21h
mov ah,1 ;считывание нажатого символа
int 21h
mov a,al
mov dx,offset mesx
mov ah,9 ;приглашение на ввод x
int 21h
mov ah,1 ;считывание нажатого символа
int 21h
mov x,al
mov dx,offset per
mov ah,9
int 21h
mov al,a
cmp x,al
jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
jg Higher
Lower:
mov al,a
add al,al
sub al,x
mov y1,al
jmp short m2
Higher:
mov al,a
add al,x
mov y1,al
m2:
mov al,10
cmp x,al
jge Small1;если x<=10, то перейти на метку Small1. Иначе на метку Bigg1.
jl Bigg
Small1:
mov al,x
mov y2,al
jmp short m3
Bigg:
mov al,a
mul x
mov y2,al
m3:
mov al,y1
mov bl,y2
add al,bl
mov y,al ;вывод на экран aam
add ax,3030h
mov dl,ah
mov dh,al
mov ah,02
int 21h
mov dl,dh
int 21h mov ah,0 int 16h
mov ah,4ch int 21h
code ends
end start
Не нашли ответ?
Похожие вопросы