DMG

Najduži sortirani podniz

DMG
May 30th, 2012
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Napisati program koji nalazi koliki je najduzi sortirani podniz u nizu, stampa njegovu duzinu
  2. ; Napomena: uradjeno je za rastuci poredak
  3.  
  4. data segment
  5.    n dw ?
  6.    a db 50 dup (?)
  7.    rez db ?
  8.    nr db 10, 13, "$"
  9.    space db "  ", "$"
  10.      
  11.    pkey db "press any key...$"
  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.     mov ah, 1
  26.     int 21h
  27.     sub al, 48  
  28.     mov bl, 10
  29.     mul bl
  30.     mov n, ax
  31.      
  32.     mov ah, 1
  33.     int 21h
  34.     sub al, 48  
  35.     mov bl, 1
  36.     mul bl
  37.     add n, ax
  38.      
  39.     mov ah, 9
  40.     lea dx, nr
  41.     int 21h
  42.    
  43.     mov si, 0
  44.    
  45.     unosniza:
  46.     cmp si, n
  47.     jl unesi
  48.     jmp krajunosa
  49.    
  50.     unesi:
  51.     mov ah, 1
  52.     int 21h
  53.     sub al, 48
  54.     mov a[si], al
  55.    
  56.     mov ah, 9
  57.     lea dx, space
  58.     int 21h
  59.            
  60.     add si, 1
  61.     jmp unosniza
  62.    
  63.     krajunosa:
  64.     mov ah, 9
  65.     lea dx, nr
  66.     int 21h
  67.    
  68.     mov rez, 1
  69.     mov cl, 1
  70.     mov si, 1
  71.    
  72.     for:
  73.     cmp si, n
  74.     jle proveri
  75.     jmp kraj
  76.    
  77.     proveri:
  78.     mov ch, a[si]
  79.     cmp ch, a[si-1]
  80.     jge nizraste
  81.     jmp rezultat
  82.    
  83.     nizraste:
  84.     add cl, 1
  85.     add si, 1
  86.     jmp for
  87.    
  88.     rezultat:
  89.     cmp cl, rez
  90.     jg rezje
  91.     jmp uvecaj
  92.    
  93.     rezje:
  94.     mov rez, cl
  95.    
  96.     uvecaj:
  97.     mov cl, 1
  98.     add si, 1
  99.     jmp for
  100.    
  101.     kraj:
  102.     mov dl, rez
  103.     add dl, 48
  104.     mov ah, 2
  105.     int 21h
  106.    
  107.      
  108.     mov ah, 9
  109.     lea dx, nr
  110.     int 21h    
  111.        
  112.     lea dx, pkey
  113.     mov ah, 9
  114.     int 21h        ; output string at ds:dx
  115.    
  116.     ; wait for any key....    
  117.     mov ah, 1
  118.     int 21h
  119.    
  120.     mov ax, 4c00h ; exit to operating system.
  121.     int 21h    
  122. ends
  123.  
  124. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment