Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. section .data align=16 ; ?
  2. jedinice times 4 dd 1.0
  3. dvojke times 4 dd 2.0
  4. petice times 4 dd 5.0
  5. ;align 16
  6. ispis1 db "%d ", 0
  7. ispis db "%d", 0
  8. brojac db 8
  9. ;brojac db 8
  10. format db '%f',0
  11. pomjeraj dw 0
  12. pom dw 0
  13. counter db 2
  14. ;counter db 2
  15. section .bss align=16
  16. niz resd 64
  17. broj resd 1
  18. section .text
  19. global main
  20. extern scanf, printf
  21. main:
  22. push rbp
  23. mov rbp, rsp
  24. push rbx
  25. push rsi
  26. push rdi
  27.  
  28.  
  29. .ucitavanje:
  30. mov rax, 0
  31. mov rdi, format
  32. mov rsi, broj
  33. call scanf
  34.  
  35. mov rax, 0
  36. mov rcx, 0
  37. mov eax, [broj]
  38. mov cx, [pomjeraj]
  39. mov [niz + rcx], eax
  40. add byte [pomjeraj], 4
  41. dec byte [brojac]
  42. cmp byte [brojac], 0
  43. je .dalje
  44. jmp .ucitavanje
  45.  
  46. .dalje:
  47. mov rcx, 0
  48. mov cx, [pom]
  49. movaps xmm0, [niz + rcx] ; |x|x|x|x|
  50. movaps xmm1, [niz + rcx] ; |x|x|x|x|
  51.  
  52. movaps xmm2, [dvojke] ; |2|2|2|2|
  53. movaps xmm3, [petice] ; |5|5|5|5|
  54. movaps xmm4, [jedinice] ; |1|1|1|1|
  55.  
  56. mulps xmm0, xmm1 ; x * x = x ^ 2
  57. mulps xmm0, xmm3 ; 5 * x ^ 2
  58. mulps xmm1, xmm2 ; 2 * x
  59. addps xmm1, xmm4 ; 2 * x + 1
  60. addps xmm0, xmm1 ; 5 * x ^ 2 + 2 * x + 1
  61.  
  62. cvttps2dq xmm0, xmm0 ; convertuje u int
  63. movaps [niz + rcx], xmm0 ; upise nazad u niz
  64. movaps [niz + rcx], xmm0 ; upise nazad u niz ?
  65.  
  66. add word [pom], 16 ; pomjeri se na sledeca 4ti
  67. dec byte [counter]
  68. cmp byte [counter], 0 ; counter -- initial je 16
  69. jne .dalje
  70.  
  71. mov word [pomjeraj], 0
  72. mov byte [brojac], 64
  73.  
  74. .ispis:
  75. mov rax, 0
  76. mov rdi, ispis1
  77. mov rcx, 0
  78. mov cx, [pomjeraj]
  79. mov rsi, 0
  80. mov esi, [niz + rcx]
  81. call printf
  82. add word [pomjeraj], 4
  83. dec byte [brojac]
  84. cmp byte [brojac], 0
  85. je .kraj
  86. jmp .ispis
  87.  
  88. .kraj:
  89. pop rdi
  90. pop rsi
  91. pop rbx
  92. mov rsp, rbp
  93. pop rbp
  94. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement