StoneHaos

vadim_sist7

May 23rd, 2021
689
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. include io.asm
  2.  
  3. sstack segment stack
  4.     db 128 dup(0)
  5. sstack ends
  6.  
  7. sdata segment
  8.  
  9.     aoshibka db "Oshibka", "$"
  10.     oshibka dw aoshibka
  11.  
  12.     avvod_n db "Vvedite n>", "$"
  13.     vvod_n dw avvod_n
  14.  
  15.     avvod_nv db "Vvedite novoe znachenie>", "$"
  16.     vvod_nv dw avvod_nv
  17.  
  18.     n db 0
  19.     newval db 0
  20.     matrica db 100 dup(0)
  21.  
  22. sdata ends
  23.  
  24. scode segment
  25. .386
  26.     assume cs:scode, ds:sdata, ss:sstack
  27. start:
  28.     mov ax,sdata
  29.     mov ds,ax
  30.    
  31.     mov dx,vvod_n
  32.     outstr
  33.     inint ax
  34.     cmp ax,10
  35.     ja toobig
  36.     mov n,al
  37.  
  38.     mov dx,vvod_nv
  39.     outstr
  40.     inint ax
  41.     cmp ax,255
  42.     ja toobig
  43.     mov newval,al
  44.  
  45.     mov al,n
  46.     mul al
  47.     mov cx,ax
  48.     mov bx,offset matrica
  49.  
  50. ; Ввод массива с клавиатуры
  51.     cicl1:
  52.         inint ax
  53.         cmp ax,255
  54.         ja toobig
  55.         mov [bx],al
  56.         inc bx
  57.         loop cicl1
  58.  
  59.     newline
  60.  
  61. ; Печать массива на экран
  62.     mov ch,0
  63.     mov cl,n
  64.     mov bx,offset matrica
  65.     cicl2:
  66.         push cx
  67.         mov ch,0
  68.         mov cl,n
  69.         cicl21:
  70.             mov ah,0
  71.             mov al,[bx]
  72.             outint ax
  73.             outch ' '
  74.             inc bx
  75.             loop cicl21
  76.         newline
  77.         pop cx
  78.         loop cicl2
  79.  
  80.     newline
  81.  
  82. ; Поиск нулевых элементов
  83.     mov cx,0
  84.     mov bx,offset matrica
  85.     cycl3:
  86.         push cx
  87.         mov cx,0
  88.         cycl31:
  89.             mov al,[bx]
  90.             cmp al,0
  91.             jne nenull
  92.             ;{
  93.             pop dx
  94.             outint dx
  95.             push dx
  96.             outch ' '
  97.             outint cx
  98.             newline
  99.             mov al,newval
  100.             mov [bx],al
  101.             ;}
  102.             nenull:
  103.             inc cx
  104.             inc bx
  105.             cmp cl,n
  106.             jne cycl31
  107.         pop cx
  108.         inc cx
  109.         cmp cl,n
  110.         jne cycl3
  111.  
  112.     newline
  113.  
  114. ; Печать массива на экран
  115.     mov ch,0
  116.     mov cl,n
  117.     mov bx,offset matrica
  118.     cicl4:
  119.         push cx
  120.         mov ch,0
  121.         mov cl,n
  122.         cicl41:
  123.             mov ah,0
  124.             mov al,[bx]
  125.             outint ax
  126.             outch ' '
  127.             inc bx
  128.             loop cicl41
  129.         newline
  130.         pop cx
  131.         loop cicl4
  132.  
  133.     jmp endprog
  134.  
  135. toobig:
  136.     mov dx,oshibka
  137.     outstr
  138.  
  139. endprog:
  140.     finish
  141.  
  142.  
  143. scode ends
  144. end start
RAW Paste Data