Advertisement
Guest User

Untitled

a guest
Apr 5th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Unijeti niz od N<10 jednocifrenih brojeva, a zatim izbaciti sve koji su neparni
  2.  
  3. %include 'assembler/asm_io.inc'
  4. segment .data
  5.     poruka_1 db "Unesite 10 proizvoljnih brojeva", 0
  6.     space    db " ", 0
  7.     djelilac dd 2
  8.  
  9. segment .bss
  10.     niz resd 9
  11.  
  12. segment .text
  13.     global asm_main
  14.    
  15.     asm_main:
  16.         enter 0, 0
  17.         pusha
  18.  
  19.         ; stampanje poruke_1
  20.         mov eax, poruka_1
  21.         call print_string
  22.         call print_nl
  23.  
  24.         mov ebx, 0 ;Ovo je index niza
  25.         mov ecx, 9
  26.  
  27.       read_loop:
  28.         call read_int
  29.         mov dword[niz + ebx], eax
  30.         inc ebx
  31.         loop read_loop 
  32.  
  33.         call print_nl
  34.        
  35.         mov edx, 0 ; samo ga postavljamo na nulu, nije potrebno ali je dobra praksa
  36.         mov ebx, 0
  37.         mov ecx, 9
  38.  
  39.       process_loop:
  40.         mov eax, dword[niz + ebx]    
  41.         div dword[djelilac]
  42.         cmp edx, 0
  43.         jne izbaci_neparni
  44.         jmp paran_je
  45.  
  46.        izbaci_neparni: ; neparne postavlja na nulu
  47.         mov eax, 0
  48.         mov dword[niz + ebx], eax
  49.    
  50.        paran_je:
  51.         inc ebx
  52.         loop process_loop
  53.  
  54.         mov ebx, 0
  55.         mov ecx, 9
  56.       print_loop:
  57.         mov eax, dword[niz + ebx]
  58.         call print_int
  59.         call print_nl
  60.         inc ebx
  61.       loop print_loop
  62.  
  63.         popa
  64.         mov eax, 0
  65.         leave
  66.         ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement