Guest User

Untitled

a guest
Apr 29th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. dseg segment
  2.  
  3.  
  4.  
  5.     N dw ?
  6.  
  7.    
  8.  
  9.     Array db 100 dup(?)    
  10.  
  11.  
  12.  
  13. dseg ends
  14.  
  15.  
  16.  
  17. Code:      
  18.  
  19.        
  20.  
  21.     mov ah, 09
  22.  
  23.    
  24.  
  25.     mov dx, offset Message1
  26.  
  27.    
  28.  
  29.     int 21h
  30.  
  31.      
  32.  
  33.     call ReadNumber
  34.  
  35.    
  36.  
  37.     mov N, ax
  38.  
  39.    
  40.  
  41.     mov ah, 09
  42.  
  43.    
  44.  
  45.     mov dx, offset Message2
  46.  
  47.      
  48.  
  49.     int 21h
  50.  
  51.    
  52.  
  53.     call ReadArray
  54.  
  55.    
  56.  
  57.     mov ah, 09
  58.  
  59.    
  60.  
  61.     mov dx, offset Message3
  62.  
  63.    
  64.  
  65.     int 21h
  66.  
  67.                  
  68.  
  69.     call FindMin
  70.  
  71.    
  72.  
  73.     mov ah, 09
  74.  
  75.    
  76.  
  77.     mov dx, offset NewLine
  78.  
  79.    
  80.  
  81.     int 21h
  82.  
  83.    
  84.  
  85.     call FindMin
  86.  
  87.            
  88.  
  89.     mov ah, 09
  90.  
  91.    
  92.  
  93.     mov dx, offset NewLine
  94.  
  95.    
  96.  
  97.     int 21h
  98.  
  99.    
  100.  
  101.     ret    
  102.  
  103.    
  104.  
  105. ReadNumber proc
  106.  
  107.  
  108.  
  109. ReadNumberStart:
  110.  
  111.  
  112.  
  113.     mov bx, 0
  114.  
  115.    
  116.  
  117. ReadDigit:
  118.  
  119.  
  120.  
  121.     mov ah, 01
  122.  
  123.    
  124.  
  125.     int 21h  
  126.  
  127.    
  128.  
  129.     cmp al, 48
  130.  
  131.    
  132.  
  133.         jb ReadNumberEnd
  134.  
  135.        
  136.  
  137.     cmp al, 57
  138.  
  139.    
  140.  
  141.         jg ReadNumberEnd
  142.  
  143.        
  144.  
  145.     sub ax, 256        
  146.  
  147.    
  148.  
  149.     sub ax, '0'
  150.  
  151.      
  152.  
  153.     mov si, ax
  154.  
  155.    
  156.  
  157.     mov ax, bx
  158.  
  159.    
  160.  
  161.     mov cx, 10
  162.  
  163.    
  164.  
  165.     mul cx
  166.  
  167.            
  168.  
  169.     add ax, si
  170.  
  171.    
  172.  
  173.     mov bx, ax
  174.  
  175.    
  176.  
  177.     jmp ReadDigit
  178.  
  179.  
  180.  
  181. ReadNumberEnd:
  182.  
  183.  
  184.  
  185.     mov ax, bx
  186.  
  187.  
  188.  
  189.     ret
  190.  
  191.                  
  192.  
  193. ReadNumber endp
  194.  
  195.  
  196.  
  197. ReadArray proc
  198.  
  199.  
  200.  
  201. ReadArrayStart:
  202.  
  203.  
  204.  
  205.     mov si, 0
  206.  
  207.    
  208.  
  209. ReadElement:  
  210.  
  211.                          
  212.  
  213.     cmp si, N
  214.  
  215.    
  216.  
  217.         je ReadArrayEnd
  218.  
  219.      
  220.  
  221.     push si
  222.  
  223.    
  224.  
  225.     call ReadNumber
  226.  
  227.        
  228.  
  229.     pop si
  230.  
  231.          
  232.  
  233.     mov Array[si], al
  234.  
  235.    
  236.  
  237.     inc si
  238.  
  239.    
  240.  
  241.     jmp ReadElement
  242.  
  243.  
  244.  
  245. ReadArrayEnd:
  246.  
  247.    
  248.  
  249.     ret
  250.  
  251.  
  252.  
  253. ReadArray endp
  254.  
  255.  
  256.  
  257. FindMin proc
  258.  
  259.    
  260.  
  261. FindMinStart:
  262.  
  263.      
  264.  
  265.     mov ax, 255
  266.  
  267.        
  268.  
  269.     mov si, 0  
  270.  
  271.    
  272.  
  273.     mov di, 0
  274.  
  275.    
  276.  
  277. CheckElement:
  278.  
  279.            
  280.  
  281.     cmp si, N
  282.  
  283.    
  284.  
  285.         je FindMinEnd
  286.  
  287.        
  288.  
  289.     cmp Array[si], al
  290.  
  291.        
  292.  
  293.         jb SetMin
  294.  
  295.        
  296.  
  297.     inc si
  298.  
  299.    
  300.  
  301.     jmp CheckElement
  302.  
  303.    
  304.  
  305. SetMin:
  306.  
  307.  
  308.  
  309.     mov al, Array[si]
  310.  
  311.          
  312.  
  313.     mov di, si
  314.  
  315.    
  316.  
  317.     inc si
  318.  
  319.    
  320.  
  321.     jmp CheckElement
  322.  
  323.    
  324.  
  325. FindMinEnd:
  326.  
  327.    
  328.  
  329.     call PrintNumber
  330.  
  331.    
  332.  
  333.     mov Array[di], 255
  334.  
  335.            
  336.  
  337.     ret
  338.  
  339.    
  340.  
  341. FindMin endp
  342.  
  343.  
  344.  
  345. PrintNumber proc
  346.  
  347.  
  348.  
  349. PrintNumberStart:
  350.  
  351.  
  352.  
  353.     push    ax
  354.  
  355.    
  356.  
  357.     push    bx
  358.  
  359.    
  360.  
  361.     push    cx
  362.  
  363.    
  364.  
  365.     push    dx  
  366.  
  367.    
  368.  
  369. DivideNumber:
  370.  
  371.    
  372.  
  373.     mov     dx, 0
  374.  
  375.    
  376.  
  377.     mov     cx, 10  
  378.  
  379.    
  380.  
  381.     div     cx
  382.  
  383.  
  384.  
  385.     cmp     ax, 0
  386.  
  387.        
  388.  
  389.         jne     PrintDigit
  390.  
  391.      
  392.  
  393.     add     dl, '0'  
  394.  
  395.    
  396.  
  397.     mov     ah, 02
  398.  
  399.    
  400.  
  401.     int     21h
  402.  
  403.  
  404.  
  405.     jmp     PrintNumberEnd
  406.  
  407.  
  408.  
  409. PrintDigit:
  410.  
  411.  
  412.  
  413.     call    PrintNumber            
  414.  
  415.  
  416.  
  417.     add     dl, '0'  
  418.  
  419.    
  420.  
  421.     mov     ah, 02
  422.  
  423.    
  424.  
  425.     int     21h        
  426.  
  427.  
  428.  
  429. PrintNumberEnd:
  430.  
  431.    
  432.  
  433.     pop     dx
  434.  
  435.    
  436.  
  437.     pop     cx
  438.  
  439.    
  440.  
  441.     pop     bx
  442.  
  443.    
  444.  
  445.     pop     ax
  446.  
  447.    
  448.  
  449.     ret
  450.  
  451.    
  452.  
  453. PrintNumber  endp  
  454.  
  455.        
  456.  
  457. Message1 db "Unesi duzinu niza : ", 0Dh, 0Ah, "$"
  458.  
  459. Message2 db "Unesi clanove niza : ", 0Dh, 0Ah, "$"                    
  460.  
  461. Message3 db "Dva najmanja clana niza su : ", 0Dh, 0Ah, "$"  
  462.  
  463.  
  464.  
  465. NewLine db "", 0Dh, 0Ah, "$"
Add Comment
Please, Sign In to add comment