madzik4113

chlon koprocesor zadania

Jan 21st, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. OBJETOSC
  2. section .text
  3. global _start
  4.  
  5.  
  6. _start:
  7. finit
  8.  
  9. fld qword [r]
  10. fld1
  11. fldpi
  12. fld qword [ul3]
  13. fld qword [ul4]
  14. ;st0=ul4 st1=ul3 st2=pi st3=r
  15.  
  16. fdivp ;st0=3/4 st1=pi st2=1 st3=r
  17. fmulp ;st0=3/4*pi st1=1 st2=r
  18. fxch st1 ;st0=1 st1=3/4*pi st2=r
  19. fmul st0, st2 ;st0=2 st1=3/4*pi st2=r
  20. fmul st0, st2 ;st0=4 st1=3/4*pi st2=r
  21. fmulp st2, st0 ;st0=8 st1=3/4*pi
  22. fmulp ;st0=3/4*pi*8
  23.  
  24.  
  25. fist dword [wynik]
  26. add dword [wynik], 48
  27.  
  28. mov eax, 4
  29. mov ebx, 1
  30. mov ecx, wynik
  31. mov edx, 2
  32. int 80h
  33.  
  34. mov eax, 1
  35. int 80h
  36.  
  37. section .data
  38. wynik dd 0
  39. ul3 dq 3
  40. ul4 dq 4
  41. r dq 1.4
  42.  
  43.  
  44.  
  45.  
  46. KOLOS
  47.  
  48. section .text
  49. global _start
  50.  
  51. _start:
  52. FINIT
  53. mov eax, 0
  54. mov ebx, 10
  55. FLD qword [x1]
  56. FLD qword [x3]
  57. FLD qword [x2]
  58. FLDZ
  59. _petla:
  60. FADD st0, st3
  61. FXCH st3
  62. FADD st0, st1
  63. FXCH st3
  64. add eax,1
  65. cmp eax,ebx
  66. jb _petla
  67. _koniec:
  68. FIST dword [wynik]
  69. ADD dword [wynik], 48
  70. mov eax, 4
  71. mov ebx, 1
  72. mov ecx, wynik
  73. mov edx, 2
  74. int 80h
  75.  
  76. mov eax, 1
  77. int 80h
  78.  
  79. section .data
  80. x2 dq 0.1
  81. x1 dq 0.05
  82. x3 dq 0.95
  83. wynik dd 0
  84.  
  85.  
  86.  
  87. Napisz program obliczający objętość kuli ze wzoru V=4/3 PI r3
  88.  
  89. section .text
  90. global _start
  91. _start:
  92. mov dword[tmp1],4
  93. mov dword[tmp2],3
  94. FILD dword[tmp2]
  95. FILD dword[tmp1]
  96. FDIV st0,st1
  97. FLDPI
  98. FMUL st0,st1
  99.  
  100. mov dword[pro1],1
  101. FILD dword[pro1]
  102. FLDZ
  103. FADD st0,st1
  104. FMUL st0,st1
  105. FMUL st0,st1
  106. FMUL st0,st2
  107. FIST dword[wynik]
  108.  
  109. add byte[wynik],48
  110. mov eax,4
  111. mov ebx,1
  112. mov ecx,wynik
  113. mov edx,1
  114. int 80h
  115.  
  116. mov eax,1
  117. int 80h
  118.  
  119.  
  120. section .data
  121. tmp1 dd 0
  122. tmp2 dd 0
  123. wynik dd 0
  124. pro1 dd 0
  125.  
  126.  
  127.  
  128. Napisz program wypisujący wartości funkcji y=12x^2+2.25x-4.5 dla x z przedziału <0,1> z
  129. krokiem 0.1. Wyświetl część całkowitą otrzymanych wyników.
  130.  
  131. section .data
  132. tmp1 dd 0
  133. tmp2 dd 0
  134. wynik dd 0
  135. pro1 dd 0
  136. [tokarczykp@galop kolokwium]$ cat plik2.asm
  137. section .text
  138. global _start
  139.  
  140. _start:
  141. finit
  142.  
  143. fild qword [dwanascie]
  144. fld qword [dwa]
  145. fld qword [cztery]
  146. fld qword [krok]
  147.  
  148. _licz:
  149. fldz
  150. fldz ; st0=0 st1=0 st2=0.1 st3=4.5 st4=2.25 st5=12
  151.  
  152. fadd st0, st5
  153. fmul st0, st2
  154. fmul st0, st2 ;st0=12*0,1^2
  155.  
  156. fxch st1 ;st0=0 st1=12*0,1^2 st2=0,1 ...
  157.  
  158. fadd st0, st4
  159. fmul st0, st2 ; st0=2,25*0,1 st1=12*0,1^2 st2=0,1 ...
  160.  
  161. fxch st1 ; st0=12x^2 st1=2,25x st2=0,1 ...
  162.  
  163. faddp st1, st0 ;st0=12x^2+2.25x st1=0.1 st2=4.5 st3=2.25 st4=12
  164. fsub st0, st2 ;st0=wynik st1=0.1 st2=4.5 st3=2.25 st4=12
  165.  
  166. fabs
  167.  
  168. fistp dword [wynik] ; st0=0.1 st1=4.5 ...
  169.  
  170. add dword [wynik], 48
  171.  
  172. mov eax, 4
  173. mov ebx, 1
  174. mov ecx, wynik
  175. mov edx, 2
  176. int 80h
  177.  
  178. fld1 ; st0=1 st1=0.1 st2=4.5 ...
  179. fxch st1 ; st0=0.1 st1=1 st2=4.5
  180. fcomi st0, st1 ; porownanie x <=> 1
  181. fadd st0, st0 ;
  182. fxch st1
  183.  
  184. fistp dword [wynik]
  185.  
  186. jb _licz ; jesli
  187.  
  188. mov eax, 1
  189. int 80h
  190.  
  191. section .data
  192. dwanascie dq 12
  193. dwa dq 2.25
  194. cztery dq 4.5
  195. krok dq 0.1
  196. wynik dd 0
  197.  
  198.  
  199.  
  200.  
  201. Napisz program który obliczy podane wyrażenie:
  202.  
  203. section .text
  204. global _start
  205. _start:
  206.  
  207. FLD qword[zm1]
  208. FLD qword[zm2]
  209. FLD qword[zm3]
  210. FLD qword[zm4]
  211. FXCH st3
  212. FMUL st0,st2
  213. FXCH st1
  214. FDIV st0,st3
  215. FXCH st1
  216. FSUB st0,st1
  217. FABS
  218. FIST dword[wynik]
  219.  
  220. add byte[wynik],48
  221. int 80h
  222. mov eax,4
  223. mov ebx,1
  224. mov ecx,wynik
  225. mov edx,1
  226. int 80h
  227. mov eax,1
  228. int 80h
  229. section .data
  230. zm1 dq 4.5
  231. zm2 dq 3.5
  232. zm3 dq 3.0
  233. zm4 dq 0.2
  234. wynik dd 0
  235.  
  236.  
  237.  
  238.  
  239. Napisz program sprawdzający która z 2 liczb zmiennoprzecinkowych jest większa i wyświetlający
  240. odpowiedni komunikat.
  241.  
  242. section .text
  243. global _start
  244.  
  245. _start:
  246. finit
  247.  
  248. fld qword [l2]
  249. fld qword [l1] ; st0=3.0 , st1=1.0
  250.  
  251. fcomi st0, st1
  252.  
  253. ja _wieksze
  254. jz _rowne
  255. jb _mniejsze
  256.  
  257. _wieksze:
  258. mov eax, 4
  259. mov ebx, 1
  260. mov ecx, wieksze
  261. mov edx, [wieksze_dl]
  262. int 80h
  263. jmp _koniec
  264. _rowne:
  265. mov eax, 4
  266. mov ebx, 1
  267. mov ecx, rowne
  268. mov edx, [rowne_dl]
  269. int 80h
  270. jmp _koniec
  271.  
  272. _mniejsze:
  273. mov eax, 4
  274. mov ebx, 1
  275. mov ecx, mniejsze
  276. mov edx, [mniejsze_dl]
  277. int 80h
  278. jmp _koniec
  279.  
  280. _koniec:
  281. int 80h
  282.  
  283. mov eax, 1
  284. int 80h
  285.  
  286. section .data
  287. l1 dq 1.1
  288. l2 dq 1.1
  289. wieksze db "liczba 1 jest wieksza od liczby 2",0ah
  290. wieksze_dl dd $-wieksze
  291.  
  292. mniejsze db "liczba 1 jest mniejsza od liczby 2",0ah
  293. mniejsze_dl dd $-mniejsze
  294.  
  295. rowne db "liczby sa rowne",0ah
  296. rowne_dl dd $-rowne
Advertisement
Add Comment
Please, Sign In to add comment