Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Napisati program kojim se unosi do devet pozitivnih jednocifrenih brojeva i određuje
- ;koliko je od unijetih brojeva parno, a koliko neparno. Prikazati odgovarajuće poruke.
- %include 'assembler/asm_io.inc'
- segment .data
- pocetna_poruka db "Unesite devet pozitivnih cijelih brojeva",0,10
- broj_parnih_msg db "Broj parnih je: ",0
- broj_neparnih_msg db "Broj neparnih je: ",0
- segment .bss
- broj_parnih resd 1
- broj_neparnih resd 1
- segment .text
- global asm_main
- asm_main:
- enter 0, 0
- pusha
- mov dword[broj_parnih],0
- mov dword[broj_neparnih],0
- mov eax, pocetna_poruka
- call print_string
- call print_nl
- mov edx, 0
- mov ebx, 2
- mov ecx, 9 ; Postavljanje inicijalnog brojaca
- loop_za_ucitavanje:
- call read_int ;Ucitavanje cijelog broja, rezultat u eax
- div ebx ; eax = aex / ebx, edx = aex % ebx
- cmp edx, 0 ;Ovo znaci da je broj djeljiv sa 2, tj paran je
- je broj_je_paran
- inc dword[broj_neparnih]
- jmp kraj_ifa
- broj_je_paran:
- inc dword[broj_parnih]
- kraj_ifa:
- loop loop_za_ucitavanje ;Vrti se dok ecx ne padne na nulu
- ;
- ; Ispisivanje rezultata.
- ;
- mov eax, broj_neparnih_msg
- call print_string
- mov eax, dword[broj_neparnih] ;stampanje broja neparnih brojeva
- call print_int
- call print_nl
- mov eax, broj_parnih_msg
- call print_string
- xor eax, eax
- mov eax, dword[broj_parnih] ;Stampanje broja parnih brojeva
- call print_int
- call print_nl
- popa
- mov eax, 0
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement