PhotoShaman

ASM.Лаба4

Mar 12th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //-------------------------------------Задание 1
  2. ; multi-segment executable file template.
  3.  
  4. data segment
  5.     ; add your data here!
  6.     pkey db "press any key...$"
  7.     ekey db "ERROOOOOOOR$"    
  8.     okey db "NORMIK$"  
  9.     a db ?
  10.     b db ?
  11.     kol db ?
  12. ends
  13.  
  14. stack segment
  15.     dw   128  dup(0)
  16. ends
  17.  
  18. code segment
  19. start:
  20. ; set segment registers:
  21.     mov ax, data
  22.     mov ds, ax
  23.     mov es, ax
  24.  
  25.     ; add your code here
  26.                  
  27.     mov ah, 1
  28.     int 21h      
  29.     mov a, al
  30.    
  31.     mov ah, 1
  32.     int 21h      
  33.     mov b, al      
  34.          
  35.     mov ah, 1
  36.     int 21h
  37.    
  38.     cmp al, a
  39.     jb error
  40.        
  41.     cmp al, b
  42.     ja error
  43.            
  44.     lea dx, okey
  45.     mov ah, 9
  46.     int 21h
  47.     mov kol, 1
  48.    
  49.     jmp konec        
  50.     error:
  51.     lea dx, ekey
  52.     mov ah, 9
  53.     int 21h
  54.     mov kol, 0        
  55.     konec:
  56.                
  57.                  
  58.     lea dx, pkey
  59.     mov ah, 9
  60.     int 21h        ; output string at ds:dx
  61.    
  62.     ; wait for any key....    
  63.     mov ah, 1
  64.     int 21h
  65.    
  66.     mov ax, 4c00h ; exit to operating system.
  67.     int 21h    
  68. ends
  69.  
  70. end start ; set entry point and stop the assembler.
  71.  
  72. //-------------------------------------Задание 2
  73.  
  74. ; multi-segment executable file template.
  75.  
  76. data segment
  77.     ; add your data here!
  78.     A db ?
  79.     B db ?
  80.     C db ?
  81.     Min db ?
  82.     pkey db "press any key...$"  
  83. ends
  84.  
  85. stack segment
  86.     dw   128  dup(0)
  87. ends
  88.  
  89. code segment
  90. start:
  91. ; set segment registers:
  92.     mov ax, data
  93.     mov ds, ax
  94.     mov es, ax
  95.  
  96.     ; add your code here  
  97.     mov ah, 1
  98.     int 21h
  99.     mov A, al
  100.    
  101.     mov ah, 1
  102.     int 21h
  103.     mov B, al
  104.    
  105.     mov ah, 1
  106.     int 21h
  107.     mov C, al
  108.    
  109.     mov al, A
  110.     mov bl, B
  111.     mov cl, C    
  112.    
  113.     cmp al, bl
  114.     jnb BorC
  115.    
  116.     cmp al, cl
  117.     jnb min_C
  118.     jmp min_A
  119.    
  120.     BorC:
  121.     cmp bl, cl
  122.     jnb min_C
  123.     jmp min_B
  124.    
  125.     min_A:
  126.     mov Min, al
  127.     jmp end  
  128.    
  129.     min_B:
  130.     mov Min, bl
  131.     jmp end
  132.    
  133.     min_C:
  134.     mov Min, cl  
  135.    
  136.     end:
  137.     lea dx, Min
  138.     mov ah, 9
  139.     int 21h        ; Min output    
  140.            
  141.     ;lea dx, pkey
  142.     ;mov ah, 9
  143.     ;int 21h        ; output string at ds:dx
  144.    
  145.     ; wait for any key....    
  146.     mov ah, 1
  147.     int 21h
  148.    
  149.     mov ax, 4c00h ; exit to operating system.
  150.     int 21h    
  151. ends
  152.  
  153. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment