Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ; file: kostur.asm
- ; Kostur asemblerskog programa
- ;
- %include "asm_io.inc"
- segment .data
- ;
- ;
- segment .bss
- ;
- n resd 1; n je uneti broj
- i resd 1; i je brojac
- ;
- segment .text
- global asm_main
- asm_main:
- enter 0,0 ; ulazna rutina
- pusha
- ;
- call read_int
- mov dword[n],eax
- mov eax,2
- mov dword[i],eax; POSTAVLJAMO 2 U I
- while_not_equal: ; Poredimo N i I, kada budu bili jednaki, skoci na kraj
- cmp dword[n],eax
- je jednaki
- mov edx,0
- mov ecx,0 ; ECX=0
- mov eax,dword[i] ; EAX=2
- mov ebx,2 ; EBX=2
- do_itog_broja:
- cmp eax,ebx ; POREDIMO I SA TRENUTNIM DELIOCEM
- je kraj
- div ebx
- cmp edx,0 ; UKOLIKO JE OSTATAK 0, ECX++
- jne preskoci_ecx_inc
- inc ecx
- preskoci_ecx_inc:
- inc ebx ; DELILAC++
- mov eax,dword[i] ; PREBACI I OPET U EAX
- jmp do_itog_broja
- kraj:
- mov eax,0
- cmp eax,ecx
- jne ne_stampaj
- mov eax,dword[i]
- call print_int
- call print_nl
- ne_stampaj:
- mov eax,dword[i]
- inc eax
- mov dword[i],eax
- jmp while_not_equal
- jednaki:
- popa
- mov eax, 0 ; vrati se u C program
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement