Advertisement
Guest User

Untitled

a guest
Apr 5th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Napisati program kojim se unosi do devet pozitivnih jednocifrenih brojeva i određuje
  2. ;koliko je od unijetih brojeva parno, a koliko neparno. Prikazati odgovarajuće poruke.
  3.  
  4. %include 'assembler/asm_io.inc'
  5. segment .data
  6.     pocetna_poruka      db "Unesite devet pozitivnih cijelih brojeva",0,10
  7.     broj_parnih_msg     db "Broj parnih je: ",0
  8.     broj_neparnih_msg   db "Broj neparnih je: ",0
  9.  
  10. segment .bss
  11.     broj_parnih resd 1
  12.     broj_neparnih resd 1
  13.  
  14. segment .text
  15.     global asm_main
  16.  
  17.     asm_main:
  18.         enter 0, 0
  19.         pusha
  20.        
  21.         mov dword[broj_parnih],0
  22.         mov dword[broj_neparnih],0
  23.        
  24.         mov eax, pocetna_poruka
  25.         call print_string
  26.         call print_nl
  27.  
  28.         mov edx, 0
  29.         mov ebx, 2
  30.         mov ecx, 9 ; Postavljanje inicijalnog brojaca
  31.      
  32.       loop_za_ucitavanje:
  33.         call read_int ;Ucitavanje cijelog broja, rezultat u eax
  34.  
  35.         div ebx ; eax = aex / ebx, edx = aex % ebx
  36.         cmp edx, 0      ;Ovo znaci da je broj djeljiv sa 2, tj paran je
  37.         je broj_je_paran
  38.        
  39.         inc dword[broj_neparnih]
  40.         jmp kraj_ifa
  41.  
  42.       broj_je_paran:
  43.         inc dword[broj_parnih]
  44.      
  45.       kraj_ifa:
  46.         loop loop_za_ucitavanje ;Vrti se dok ecx ne padne na nulu
  47.  
  48.         ;
  49.         ; Ispisivanje rezultata.
  50.         ;
  51.  
  52.         mov eax, broj_neparnih_msg
  53.         call print_string
  54.         mov eax, dword[broj_neparnih] ;stampanje broja neparnih brojeva
  55.         call print_int
  56.         call print_nl
  57.  
  58.         mov eax, broj_parnih_msg
  59.         call print_string
  60.         xor eax, eax
  61.         mov eax, dword[broj_parnih] ;Stampanje broja parnih brojeva
  62.         call print_int
  63.         call print_nl
  64.  
  65.         popa
  66.         mov eax, 0
  67.         leave
  68.         ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement