Advertisement
Guest User

Untitled

a guest
Jan 15th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Заполнить массив байт фиксированной длины с клавиатуры числами от 0 до 9.
  2. ;Найти произведение элементов массива.
  3.  
  4. model small
  5. .386
  6. .stack 100h
  7. .data
  8.     strLen db 10,13, 'Length: $'
  9.     strInAr db 10,13, 'Input Array: $'
  10.     strMul db 10,13, 'Mul Array: $'
  11.     strEr db 10,13, 'Error $'
  12.     ar db 10 dup(0)
  13.     len db ?
  14.     digit dd 0
  15.     mult dd 1
  16.     error db 0
  17.     temp db 0
  18.     avg db 0
  19. .code
  20.     input proc
  21.         mov ah, 01h
  22.         int 21h
  23.  
  24.         sub al, '0'
  25.        
  26.         cmp al, 9
  27.         ja @error
  28.  
  29.         jmp @exit1
  30.        
  31.         @error:
  32.             mov error, 1
  33.  
  34.             mov ah, 09h
  35.             mov dx, OFFSET strEr
  36.             int 21h    
  37.    
  38.         @exit1:
  39.             ret
  40.     input endp
  41.  
  42.     inputAr proc
  43.         mov ah, 09h
  44.         mov dx, OFFSET strinar
  45.         int 21h
  46.  
  47.         mov cl, len
  48.         xor si, si
  49.         @loop:
  50.             call input
  51.            
  52.             cmp error, 1
  53.             je @exitf
  54.            
  55.             mov ar[si], cl
  56.             inc si
  57.            
  58.             loop @loop     
  59.  
  60.         @exitf:
  61.             ret
  62.     inputAr endp
  63.  
  64.     multi proc
  65.         mov cl, len
  66.         xor si, si
  67.         xor eax, eax
  68.         @loop2:
  69.             mov al, ar[si]
  70.             mul mult
  71.            
  72.             mov mult,eax
  73.            
  74.             inc si
  75.             loop @loop2
  76.        
  77.         mov ah, 09h
  78.         mov dx, offset strmul
  79.         int 21h                        
  80.        
  81.             ret
  82.     multi endp
  83.  
  84.     main:
  85.         mov ax, @data
  86.         mov ds, ax
  87.  
  88.         mov ah, 09h
  89.         mov dx, OFFSET strLen
  90.         int 21h
  91.        
  92.         call input
  93.  
  94.         cmp error, 1
  95.         je @exit
  96.  
  97.         mov len, al
  98.  
  99.         call inputAr
  100.  
  101.         cmp error, 1
  102.         je @exit
  103.  
  104.         call multi 
  105.  
  106.         @exit:
  107.             mov ah, 04Ch
  108.             int 21h    
  109.     end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement