spill.sbk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. .486
  2. .model flat
  3. extrn __fltused:near
  4. extrn __ftol:near
  5. public _main
  6. _TEXT segment
  7. _main:
  8. push ebx
  9. push esi
  10. push edi
  11. push ebp
  12. mov ebp,esp
  13. mov eax,0
  14. L1:
  15. mov esp,ebp
  16. pop ebp
  17. pop edi
  18. pop esi
  19. pop ebx
  20. ret
  21. public _f
  22. _f:
  23. push ebx
  24. push esi
  25. push edi
  26. push ebp
  27. mov ebp,esp
  28. call _f
  29. add esp,0
  30. mov edi,eax
  31. call _f
  32. add esp,0
  33. lea edi,[eax][edi]
  34. mov dword ptr (20)[ebp],edi
  35. mov eax,0
  36. L2:
  37. mov esp,ebp
  38. pop ebp
  39. pop edi
  40. pop esi
  41. pop ebx
  42. ret
  43. public _f2
  44. _f2:
  45. push ebx
  46. push esi
  47. push edi
  48. push ebp
  49. mov ebp,esp
  50. sub esp,4
  51. call _f
  52. add esp,0
  53. mov edi,eax
  54. cmp dword ptr (20)[ebp],0
  55. je L5
  56. call _f
  57. add esp,0
  58. mov esi,eax
  59. mov dword ptr (-4)[ebp],esi
  60. jmp L6
  61. L5:
  62. mov dword ptr (-4)[ebp],1
  63. L6:
  64. mov esi,dword ptr (-4)[ebp]
  65. lea edi,[esi][edi]
  66. mov dword ptr (20)[ebp],edi
  67. mov eax,0
  68. L3:
  69. mov esp,ebp
  70. pop ebp
  71. pop edi
  72. pop esi
  73. pop ebx
  74. ret
  75. public _f3
  76. _f3:
  77. push ebx
  78. push esi
  79. push edi
  80. push ebp
  81. mov ebp,esp
  82. sub esp,44
  83. mov dword ptr (-4)[ebp],0
  84. mov dword ptr (-8)[ebp],0
  85. mov dword ptr (-12)[ebp],0
  86. mov dword ptr (-16)[ebp],0
  87. mov dword ptr (-20)[ebp],0
  88. mov dword ptr (-24)[ebp],0
  89. mov dword ptr (-28)[ebp],0
  90. mov dword ptr (-32)[ebp],0
  91. mov dword ptr (-36)[ebp],0
  92. mov dword ptr (-40)[ebp],0
  93. mov edi,dword ptr (24)[ebp]
  94. lea esi,(4)[edi]
  95. mov dword ptr (24)[ebp],esi
  96. cmp dword ptr (20)[ebp],0
  97. je L9
  98. call _f
  99. add esp,0
  100. mov esi,eax
  101. mov dword ptr (-44)[ebp],esi
  102. jmp L10
  103. L9:
  104. mov dword ptr (-44)[ebp],0
  105. L10:
  106. mov esi,dword ptr (-44)[ebp]
  107. mov dword ptr [edi],esi
  108. mov eax,0
  109. L7:
  110. mov esp,ebp
  111. pop ebp
  112. pop edi
  113. pop esi
  114. pop ebx
  115. ret
  116. public _f4
  117. _f4:
  118. push ebx
  119. push esi
  120. push edi
  121. push ebp
  122. mov ebp,esp
  123. sub esp,52
  124. mov dword ptr (-4)[ebp],0
  125. mov dword ptr (-8)[ebp],0
  126. mov dword ptr (-12)[ebp],0
  127. mov dword ptr (-16)[ebp],0
  128. mov dword ptr (-20)[ebp],0
  129. mov dword ptr (-24)[ebp],0
  130. mov edi,dword ptr (_i)
  131. lea esi,[edi*8]
  132. fld qword ptr (_a)[esi]
  133. fstp qword ptr (-36)[ebp]
  134. fld qword ptr (_b)[esi]
  135. fstp qword ptr (-44)[ebp]
  136. fld qword ptr (-36)[ebp]
  137. fadd qword ptr (-44)[ebp]
  138. fld qword ptr (L15)
  139. fcompp
  140. fstsw ax
  141. sahf
  142. je L13
  143. cmp edi,0
  144. je L13
  145. fld qword ptr (-36)[ebp]
  146. fsub qword ptr (-44)[ebp]
  147. fld qword ptr (L15)
  148. fcompp
  149. fstsw ax
  150. sahf
  151. je L13
  152. mov dword ptr (-28)[ebp],1
  153. jmp L14
  154. L13:
  155. mov dword ptr (-28)[ebp],0
  156. L14:
  157. mov edi,dword ptr (-28)[ebp]
  158. mov dword ptr (_i),edi
  159. mov eax,0
  160. L11:
  161. mov esp,ebp
  162. pop ebp
  163. pop edi
  164. pop esi
  165. pop ebx
  166. ret
  167. public _f5
  168. _f5:
  169. push ebx
  170. push esi
  171. push edi
  172. push ebp
  173. mov ebp,esp
  174. mov edi,dword ptr (_k)
  175. mov esi,dword ptr (_m)
  176. mov ebx,dword ptr (_A)
  177. mov edx,edi
  178. imul edx,esi
  179. lea edx,[ebx][edx*8]
  180. mov ecx,dword ptr (_j)
  181. mov eax,ecx
  182. imul eax,esi
  183. lea esi,[ebx][eax*8]
  184. mov ebx,dword ptr (_n)
  185. mov eax,dword ptr (_B)
  186. imul edi,ebx
  187. lea edi,[eax][edi*8]
  188. imul ecx,ebx
  189. lea ebx,[eax][ecx*8]
  190. fld qword ptr [edx]
  191. fmul qword ptr [esi]
  192. fld qword ptr [edi]
  193. fmul qword ptr [ebx]
  194. faddp st(1),st
  195. fstp qword ptr (_x)
  196. fld qword ptr [edx]
  197. fmul qword ptr [ebx]
  198. fld qword ptr [edi]
  199. fmul qword ptr [esi]
  200. fsubp st(1),st
  201. fstp qword ptr (_x)
  202. mov eax,0
  203. L16:
  204. mov esp,ebp
  205. pop ebp
  206. pop edi
  207. pop esi
  208. pop ebx
  209. ret
  210. _TEXT ends
  211. _DATA segment
  212. public _x
  213. align 4
  214. _x label byte
  215. db 8 dup (0)
  216. public _B
  217. align 4
  218. _B label byte
  219. db 4 dup (0)
  220. public _A
  221. align 4
  222. _A label byte
  223. db 4 dup (0)
  224. public _n
  225. align 4
  226. _n label byte
  227. db 4 dup (0)
  228. public _m
  229. align 4
  230. _m label byte
  231. db 4 dup (0)
  232. public _k
  233. align 4
  234. _k label byte
  235. db 4 dup (0)
  236. public _j
  237. align 4
  238. _j label byte
  239. db 4 dup (0)
  240. public _i
  241. align 4
  242. _i label byte
  243. db 4 dup (0)
  244. public _b
  245. align 4
  246. _b label byte
  247. db 80 dup (0)
  248. public _a
  249. align 4
  250. _a label byte
  251. db 80 dup (0)
  252. _DATA ends
  253. _TEXT segment
  254. align 4
  255. L15 label byte
  256. dd 00H
  257. dd 00H
  258. _TEXT ends
  259. end