Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Ovaj program sumira niz od 10 pozitivnih FP brojeva
- ; i stampa rezultat
- ; prevesti sa nasm -f win32 array.asm
- ; povezati sa gcc -o array driver.c array.obj asm_io.obj
- %include "asm_io.inc"
- SIZE EQU 10
- segment .data
- array dq 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
- multiplyer dd 10000
- poruka db "Suma je ",0
- brojac dd 0
- tacka db ".",0
- format db "%f",0
- medusuma dq 0.0
- segment .bss
- sum resq 1
- intpart resd 1
- ratpart resd 1
- segment .text
- global _asm_main
- extern _printf
- _asm_main:
- enter 0,0 ; pripremi rutinu
- pusha
- mov ecx, SIZE
- mov esi, array
- fldz ; ST0 = 0
- mov word[brojac],0
- fxch ST1
- lp:
- ;fld qword [medusuma]
- ;fxch ST1
- fld1
- fmul qword [esi] ; ST0 *= *(esi)
- fmul qword [esi]
- fimul word[brojac]
- add word[brojac],1
- fadd qword[medusuma]
- fstp qword [medusuma]
- add esi, 8 ; naredni broj
- loop lp
- fld qword [medusuma]
- mov eax,poruka
- call print_string
- sub esp, 8
- fstp qword [esp]
- push format
- call _printf
- add esp, 12
- call print_nl ; novi red
- popa
- mov eax, 0
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement