DMG

Formiranje niza

DMG
Mar 18th, 2012
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Dato je 20 cijelih brojeva. Napisati program za formiranje 2 niza ciji su elementi|:
  2. ; (1. niz)  a[1], a[11], a[3], a[13] .... a[9], a[19]
  3. ; (2. niz)  a[12], a[2], a[14], a[4] .... a[20], a[10]
  4.  
  5. ; multi-segment executable file template.
  6.  
  7. data segment
  8.     a db 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 1, 3, 7, 8, 9, 7, 3, 9, 1
  9.     b db 10 dup (?)
  10.     c db 10 dup (?)
  11.     n dw 20
  12.     razmak db " ", "$"
  13.     pkey db "press any key...$"
  14. ends
  15.  
  16. stack segment
  17.     dw   128  dup(0)
  18. ends
  19.  
  20. code segment
  21. start:
  22. ; set segment registers:
  23.     mov ax, data
  24.     mov ds, ax
  25.     mov es, ax
  26.  
  27.     mov si, 0
  28.     mov bx, n
  29.     mov di, 0
  30.    
  31.     for1:
  32.     cmp si, bx
  33.     jl formiraj
  34.     jmp kraj
  35.    
  36.     formiraj:
  37.     mov al, a[si]
  38.     mov b[di], al
  39.     add si, 10
  40.     mov al, a[si]
  41.     add di, 1
  42.     mov b[di], al
  43.     sub si, 8
  44.     add di, 1
  45.     jmp for1:
  46.    
  47.     kraj:
  48.     mov si, 1
  49.     mov di, 0
  50.     mov bx, n
  51.    
  52.     for2:
  53.     add si, 10
  54.     cmp si, bx
  55.     jl formirajc
  56.     jmp kraj2
  57.    
  58.     formirajc:
  59.     mov al, a[si]
  60.     mov c[di], al
  61.     add di, 1
  62.     sub si, 10
  63.     mov al, a[si]
  64.     mov c[di], al
  65.     add di, 1
  66.     add si, 2
  67.     jmp for2
  68.    
  69.     kraj2:
  70.    
  71.    
  72.     call prikaz
  73.     ret
  74.    
  75.     prikaz PROC
  76.         mov si, 0
  77.         mov bx, 10  
  78.        
  79.         for:
  80.         cmp si, bx
  81.         jl stampaj
  82.         jmp kraj1
  83.        
  84.         stampaj:
  85.         mov ah, 2
  86.         mov dl, c[si]
  87.         add dl, 48        
  88.         int 21h
  89.         lea dx, razmak
  90.         mov ah, 9
  91.         int 21h
  92.         add si, 1
  93.         jmp for
  94.        
  95.         kraj1:
  96.         ret
  97.     prikaz ENDP
  98.            
  99.     lea dx, pkey
  100.     mov ah, 9
  101.     int 21h        ; output string at ds:dx
  102.    
  103.     ; wait for any key....    
  104.     mov ah, 1
  105.     int 21h
  106.    
  107.     mov ax, 4c00h ; exit to operating system.
  108.     int 21h    
  109. ends
  110.  
  111. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment