Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. ; Ovaj program sumira niz od 10 pozitivnih FP brojeva
  2. ; i stampa rezultat
  3. ; prevesti sa nasm -f win32 array.asm
  4. ; povezati sa gcc -o array driver.c array.obj asm_io.obj
  5.  
  6. %include "asm_io.inc"
  7.  
  8. SIZE EQU 10
  9. segment .data
  10. array dq 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
  11. multiplyer dd 10000
  12. poruka db "Suma je ",0
  13. brojac dd 0
  14. tacka db ".",0
  15. format db "%f",0
  16. medusuma dq 0.0
  17. segment .bss
  18. sum resq 1
  19. intpart resd 1
  20. ratpart resd 1
  21. segment .text
  22. global _asm_main
  23. extern _printf
  24. _asm_main:
  25. enter 0,0 ; pripremi rutinu
  26. pusha
  27. mov ecx, SIZE
  28. mov esi, array
  29. fldz ; ST0 = 0
  30. mov word[brojac],0
  31. fxch ST1
  32.  
  33. lp:
  34. ;fld qword [medusuma]
  35. ;fxch ST1
  36.  
  37. fld1
  38. fmul qword [esi] ; ST0 *= *(esi)
  39. fmul qword [esi]
  40. fimul word[brojac]
  41. add word[brojac],1
  42. fadd qword[medusuma]
  43.  
  44.  
  45. fstp qword [medusuma]
  46.  
  47. add esi, 8 ; naredni broj
  48. loop lp
  49. fld qword [medusuma]
  50. mov eax,poruka
  51. call print_string
  52. sub esp, 8
  53. fstp qword [esp]
  54. push format
  55. call _printf
  56. add esp, 12
  57.  
  58. call print_nl ; novi red
  59. popa
  60. mov eax, 0
  61. leave
  62. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement