Guest User

Untitled

a guest
Feb 4th, 2018
106
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ORG 100H
  2.  
  3. ISPISI_PORUKU MACRO PORUKA
  4.     LEA DX, PORUKA
  5.     MOV AH, 9
  6.     INT 21H
  7. ENDM
  8.  
  9. .data
  10.     NIZ1                    DW  10 DUP(0)
  11.     NIZ2                    DW  10 DUP(0)
  12.     NIZ3                    DW  10 DUP(0)
  13.     NIZ4                    DW  10 DUP(0)
  14.  
  15.     REZULTATI_ODUZIMANJA    DB  10 DUP(0)
  16.    
  17.     MINIMUM                 DB  0
  18.     MAKSIMUM                DB  0
  19.  
  20.     ;PORUKA1                DW  'Unesi niz 1:', '$'
  21.     PORUKA2                 DW  'Unesi niz 2:', '$'
  22.     ;PORUKA3                DW  'Unesi niz 3:', '$'
  23.     PORUKA4                 DW  'Unesi niz 4:', '$'    
  24.    
  25.     PORUKA_MINIMUM          DW  'Minimum: ', '$'
  26.     PORUKA_MAKSIMUM         DW  'Maksimum: ', '$'
  27.    
  28. .code
  29.     ;======================================================================
  30.     ;                          GLAVNA FUNKCIJA
  31.     ;======================================================================
  32.     GLAVNA PROC
  33.         ;ISPISI_PORUKU Poruka1
  34.         ;CALL UCITAJ_NIZ1
  35.  
  36.         ISPISI_PORUKU Poruka2
  37.         CALL UCITAJ_NIZ2
  38.  
  39.         ;ISPISI_PORUKU Poruka3
  40.         ;CALL UCITAJ_NIZ3
  41.  
  42.         ISPISI_PORUKU Poruka4
  43.         CALL UCITAJ_NIZ4
  44.        
  45.         CALL IZVRSI_ODUZIMANJE
  46.         CALL NADJI_MINIMUM_I_MAKSIMUM
  47.        
  48.         CALL ISPISI_REZULTATE
  49.         RET
  50.     ENDP GLAVNA
  51.      
  52.     ;======================================================================
  53.     ;                               UNOS
  54.     ;======================================================================
  55.     UCITAJ_NIZ1 PROC
  56.         MOV CX, 0
  57.        
  58.         UNOS_U_NIZ1:      
  59.             XOR BX, BX
  60.             MOV AH, 1
  61.             INT 21H
  62.            
  63.             PETLJA1:
  64.                 CMP AL, 0DH
  65.                 JE KRAJ_PETRLJE1
  66.                  
  67.                 CMP AL, ' '
  68.                 JE KRAJ_PETRLJE1
  69.                
  70.                 CMP AL, '0'
  71.                 JB SLEDECI1
  72.                
  73.                 CMP AL, 'F'
  74.                 JA SLEDECI1
  75.                
  76.                 CMP AL, 39H
  77.                 JG SLOVO1  
  78.                
  79.                 AND AL, 0FH
  80.                 JMP POMERANJE1
  81.                     SLOVO1:
  82.                          SUB AL, 37H
  83.                     POMERANJE1:
  84.                         SHL BX, 4
  85.                         ADD BL, AL
  86.                         CMP BX, 0FFFH
  87.                         JA KRAJ_PETRLJE1
  88.                        
  89.                 SLEDECI1:
  90.                     INT 21H
  91.                     JMP PETLJA1
  92.                    
  93.                 KRAJ_PETRLJE1:
  94.                     MOV SI, CX
  95.                     MOV NIZ1[SI], BX
  96.                     INC CX
  97.                     INC CX
  98.                     CMP CX, 20  
  99.                     JE IZLAZ1
  100.                     JMP UNOS_U_NIZ1  
  101.             IZLAZ1:
  102.            
  103.             RET
  104.     ENDP UCITAJ_NIZ1
  105.    
  106.     UCITAJ_NIZ2 PROC
  107.         MOV CX, 0
  108.        
  109.         UNOS_U_NIZ2:      
  110.             XOR BX, BX
  111.             MOV AH, 1
  112.             INT 21H
  113.            
  114.             PETLJA2:
  115.                 CMP AL, 0DH
  116.                 JE KRAJ_PETRLJE2
  117.                  
  118.                 CMP AL, ' '
  119.                 JE KRAJ_PETRLJE2
  120.                
  121.                 CMP AL, '0'
  122.                 JB SLEDECI2
  123.                
  124.                 CMP AL, 'F'
  125.                 JA SLEDECI2
  126.                
  127.                 CMP AL, 39H
  128.                 JG SLOVO2  
  129.                
  130.                 AND AL,0FH
  131.                 JMP POMERANJE2
  132.                     SLOVO2:
  133.                          SUB AL, 37H
  134.                     POMERANJE2:
  135.                         SHL BX, 4
  136.                         ADD BL, AL
  137.                         CMP BX, 0FFFH
  138.                         JA KRAJ_PETRLJE2
  139.                        
  140.                 SLEDECI2:
  141.                     INT 21H
  142.                     JMP PETLJA2
  143.                    
  144.                 KRAJ_PETRLJE2:
  145.                     MOV SI, CX
  146.                     MOV NIZ1[SI], BX
  147.                     INC CX
  148.                     INC CX
  149.                     CMP CX, 20  
  150.                     JE IZLAZ2
  151.                     JMP UNOS_U_NIZ2  
  152.             IZLAZ2:
  153.            
  154.             RET
  155.     ENDP UCITAJ_NIZ2
  156.    
  157.     UCITAJ_NIZ3 PROC
  158.         MOV CX, 0
  159.        
  160.         UNOS_U_NIZ3:      
  161.             XOR BX, BX
  162.             MOV AH, 1
  163.             INT 21H
  164.            
  165.             PETLJA3:
  166.                 CMP AL, 0DH
  167.                 JE KRAJ_PETRLJE3
  168.                  
  169.                 CMP AL, ' '
  170.                 JE KRAJ_PETRLJE3
  171.                
  172.                 CMP AL, '0'
  173.                 JB SLEDECI3
  174.                
  175.                 CMP AL, 'F'
  176.                 JA SLEDECI3
  177.                
  178.                 CMP AL, 39H
  179.                 JG SLOVO3  
  180.                
  181.                 AND AL,0FH
  182.                 JMP POMERANJE3
  183.                     SLOVO3:
  184.                          SUB AL, 37H
  185.                     POMERANJE3:
  186.                         SHL BX, 4
  187.                         ADD BL, AL
  188.                         CMP BX, 0FFFH
  189.                         JA KRAJ_PETRLJE3
  190.                        
  191.                 SLEDECI3:
  192.                     INT 21H
  193.                     JMP PETLJA3
  194.                    
  195.                 KRAJ_PETRLJE3:
  196.                     MOV SI, CX
  197.                     MOV NIZ1[SI], BX
  198.                     INC CX
  199.                     INC CX
  200.                     CMP CX, 20  
  201.                     JE IZLAZ3
  202.                     JMP UNOS_U_NIZ3  
  203.             IZLAZ3:
  204.            
  205.             RET
  206.     ENDP UCITAJ_NIZ3
  207.    
  208.     UCITAJ_NIZ4 PROC
  209.         MOV CX, 0
  210.        
  211.         UNOS_U_NIZ4:      
  212.             XOR BX, BX
  213.             MOV AH, 1
  214.             INT 21H
  215.            
  216.             PETLJA4:
  217.                 CMP AL, 0DH
  218.                 JE KRAJ_PETRLJE4
  219.                  
  220.                 CMP AL, ' '
  221.                 JE KRAJ_PETRLJE4
  222.                
  223.                 CMP AL, '0'
  224.                 JB SLEDECI4
  225.                
  226.                 CMP AL, 'F'
  227.                 JA SLEDECI4
  228.                
  229.                 CMP AL, 39H
  230.                 JG SLOVO4  
  231.                
  232.                 AND AL,0FH
  233.                 JMP POMERANJE4
  234.                     SLOVO4:
  235.                          SUB AL, 37H
  236.                     POMERANJE4:
  237.                         SHL BX, 4
  238.                         ADD BL, AL
  239.                         CMP BX, 0FFFH
  240.                         JA KRAJ_PETRLJE4
  241.                        
  242.                 SLEDECI4:
  243.                     INT 21H
  244.                     JMP PETLJA4
  245.                    
  246.                 KRAJ_PETRLJE4:
  247.                     MOV SI, CX
  248.                     MOV NIZ1[SI], BX
  249.                     INC CX
  250.                     INC CX
  251.                     CMP CX, 20  
  252.                     JE IZLAZ4
  253.                     JMP UNOS_U_NIZ4  
  254.             IZLAZ4:
  255.            
  256.             RET
  257.     ENDP UCITAJ_NIZ4
  258.    
  259.     ;======================================================================
  260.     ;                     ODUZIMANJE CLANOVA 2 NIZA
  261.     ;======================================================================
  262.     IZVRSI_ODUZIMANJE PROC
  263.         PUSH AX
  264.         PUSH BX
  265.         PUSH DS
  266.         PUSH SI
  267.        
  268.         MOV AX, @data
  269.         MOV DS, AX
  270.        
  271.         XOR SI, SI
  272.         XOR DI, DI
  273.         XOR BX, BX      
  274.        
  275.         MOV CX, 10
  276.  
  277.         ;MOV SI, OFFSET NIZ1
  278.         ;MOV DI, OFFSET NIZ3
  279.         MOV SI, OFFSET NIZ2
  280.         MOV DI, OFFSET NIZ4
  281.        
  282.         ODUZMI:
  283.             MOV AL, [SI]
  284.             MOV BL, [DI]
  285.  
  286.             SUB AL, BL
  287.  
  288.             MOV REZULTATI_ODUZIMANJA[BX], AL
  289.  
  290.             INC SI
  291.             INC DI
  292.             INC BX
  293.  
  294.         loop ODUZMI
  295.      
  296.         POP SI
  297.         POP DS
  298.         POP BX
  299.         POP AX
  300.        
  301.         RET
  302.     ENDP IZVRSI_ODUZIMANJE
  303.    
  304.     ;======================================================================
  305.     ;                  PRONALAZENJE MINIMUMA I MAKSIMUMA
  306.     ;======================================================================
  307.     NADJI_MINIMUM_I_MAKSIMUM PROC
  308.         PUSH AX
  309.         PUSH DS
  310.         PUSH SI
  311.            
  312.         MOV AX, @data
  313.         MOV DS, AX
  314.        
  315.         LEA SI, REZULTATI_ODUZIMANJA
  316.         MOV AL, REZULTATI_ODUZIMANJA[SI]
  317.         MOV MINIMUM, AL
  318.         MOV MAKSIMUM, AL
  319.        
  320.         MOV CX, 10
  321.        
  322.         PONOVI:
  323.             MOV AL, REZULTATI_ODUZIMANJA[SI]
  324.             CMP MINIMUM, AL
  325.             JL PROVERI_MAKSIMUM
  326.            
  327.         PROVERI_MAKSIMUM:
  328.             CMP MAKSIMUM, AL
  329.             JG GOTOVO
  330.            
  331.         GOTOVO:
  332.             INC SI
  333.             LOOP PONOVI
  334.        
  335.         POP SI
  336.         POP DS
  337.         POP AX
  338.    
  339.         RET
  340.     ENDP NADJI_MINIMUM_I_MAKSIMUM
  341.    
  342.     ;======================================================================
  343.     ;                           ISPIS REZULTATA
  344.     ;======================================================================
  345.     ISPISI_REZULTATE PROC
  346.         PUSH AX
  347.         PUSH DS
  348.         PUSH SI
  349.        
  350.         MOV AX, @data
  351.         MOV DS, AX  
  352.        
  353.         ; Ne radi iz nekog razloga ispisuje smajli umesto broja, ali ostatak bi trebalo da radi
  354.         ISPISI_PORUKU PORUKA_MINIMUM
  355.         LEA DX, MINIMUM
  356.         MOV AH, 9
  357.         INT 21H
  358.        
  359.         ; Ne radi iz nekog razloga ispisuje smajli umesto broja, ali ostatak bi trebalo da radi
  360.         ISPISI_PORUKU PORUKA_MAKSIMUM
  361.         MOV DX, OFFSET MAKSIMUM
  362.         MOV AH, 9
  363.         INT 21H
  364.        
  365.         POP SI
  366.         POP DS
  367.         POP AX
  368.    
  369.         RET
  370.     ENDP ISPISI_REZULTATE    
  371. .exit
  372. ret
RAW Paste Data