Программа ** языке ассемблера с полным описанием сегментов для вычисления значения y.

0 голосов
46 просмотров

Программа на языке ассемблера с полным описанием сегментов для вычисления значения y.


image

Информатика (17 баллов) | 46 просмотров
Дан 1 ответ
0 голосов
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.   <br>      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.  <br>       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
(564 баллов)