DMG

Broji clanove niza iz intervala (a, b)

DMG
May 18th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; NAP kojim se unosi n clanova niza sastavljenog od jednocifrenih pozitivnih brojeva, a zatim se unose
  2. ; dva broja a i b. Program treba da izbroji koliko je clanova u intervalu (a, b)
  3. ; multi-segment executable file template.
  4.  
  5. data segment
  6.     niz db 99 dup (?)
  7.     n dw ?
  8.        
  9.     pkey db "press any key...$"
  10. ends
  11.  
  12. stack segment
  13.     dw   128  dup(0)
  14. ends
  15.  
  16. code segment
  17. start:
  18. ; set segment registers:
  19.     mov ax, data
  20.     mov ds, ax
  21.     mov es, ax
  22.    
  23.     mov ah, 1
  24.     int 21h
  25.     sub al, 48
  26.     mov bl, 1
  27.     mul bl
  28.    
  29.     mov n, ax
  30.     mov si, 0
  31.    
  32.     unos:
  33.     cmp si, n
  34.     jl unesi
  35.     jmp broji
  36.    
  37.     unesi:
  38.     mov ah, 1
  39.     int 21h
  40.     sub al, 48
  41.     mov niz[si], al
  42.     add si, 1
  43.     jmp unos
  44.    
  45.     broji:
  46.     mov bh, 0
  47.     mov ah, 1
  48.     int 21h
  49.     sub al, 48
  50.     mov cl, al ;ovde je granicna vrijednost a
  51.    
  52.     mov ah, 1
  53.     int 21h
  54.     sub al, 48
  55.     mov ch, al ;ovde je granicna vrijednost b  
  56.    
  57.     mov si, 0
  58.     for2:
  59.     cmp si, n
  60.     jl radi
  61.     jmp kraj
  62.    
  63.     radi:
  64.     cmp niz[si], cl
  65.     jg provjeri2
  66.     jmp uvecaj
  67.    
  68.     provjeri2:
  69.     cmp niz[si], ch
  70.     jl saberi
  71.     jmp uvecaj
  72.    
  73.     saberi:
  74.     add bh, 1
  75.    
  76.     uvecaj:
  77.     add si, 1
  78.     jmp for2
  79.    
  80.     kraj:
  81.    
  82.     mov ah, 2
  83.     mov dl, bh
  84.     add dl, 48
  85.     int 21h
  86.    
  87.    
  88.    
  89.            
  90.     lea dx, pkey
  91.     mov ah, 9
  92.     int 21h        ; output string at ds:dx
  93.    
  94.     ; wait for any key....    
  95.     mov ah, 1
  96.     int 21h
  97.    
  98.     mov ax, 4c00h ; exit to operating system.
  99.     int 21h    
  100. ends
  101.  
  102. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment