Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.24 KB | None | 0 0
  1. TITLE MASM Template (main.asm)
  2.  
  3. INCLUDE Irvine32.inc
  4. .data
  5. dlzka EQU 101
  6. post DW dlzka dup(?), 0
  7. pocetCisel DB "Kolko chcete nacitat cisel (MAX 100)? ", 0
  8. zadanie DB "Zadavajte cisla postupnosti: ", 0
  9. pocet DD 6 dup(?)
  10.  
  11. .code
  12. main PROC
  13. call Clrscr
  14.  
  15. mov edx, OFFSET pocetCisel
  16. call WriteString
  17. call ReadDec
  18. mov edx, OFFSET zadanie
  19. call WriteString
  20. call CrLf
  21. mov ecx, eax
  22. mov pocet, eax
  23. mov edi, 0
  24. xor eax, eax
  25. Nacitavanie:
  26. call ReadInt
  27. mov post[edi*2], ax
  28. inc edi
  29. loop Nacitavanie
  30. call CrLf
  31.  
  32. ;VYHLADA MINIMUM
  33. mov ecx, pocet
  34. mov edi, 0
  35. xor eax, eax
  36. movsx eax, post[edi*2]
  37. mov ebx, 0
  38. Cyklus:
  39. cmp ax, post[edi*2]
  40. jle Nemenit
  41. movsx eax, post[edi*2]
  42. mov ebx, edi
  43. Nemenit:
  44. inc edi
  45. loop Cyklus
  46.  
  47. call WriteInt
  48. call CrLf
  49. xor eax, eax
  50. mov eax, ebx
  51. call WriteInt
  52.  
  53. exit
  54. main ENDP
  55.  
  56. END main
  57.  
  58.  
  59. TITLE MASM Template (main.asm)
  60.  
  61. INCLUDE Irvine32.inc
  62. .data
  63. A REAL4 -4.0
  64. B REAL4 1.0
  65. Vysledok REAL4 ?
  66.  
  67. Plus DB "Cislo je kladne",0Ah,0Dh,0
  68. Minus DB "Cislo je zaporne",0Dh,0Ah,0
  69. Exp DB "Exponent:",0
  70. Mant DB "Absolutna hodnota mantisy za radovou ciarkou:",0Dh,0Ah,0
  71. Cislo DB "1"
  72. Jedna DD 0400000h
  73. Hex DB "Hexadecimalne:",0
  74. Bin DB "Binarne:",0
  75.  
  76. .code
  77.  
  78. Cakaj MACRO
  79. call CrLf
  80. call WaitMsg
  81. call CrLf
  82. ENDM
  83.  
  84. PisRetaz MACRO pRetaz
  85. mov edx, offset pRetaz
  86. call WriteString
  87. ENDM
  88.  
  89. main PROC
  90. call Clrscr
  91. finit ; st(0) st(1) st(2)
  92. fld A ; a
  93. fld B ; b a
  94. call showFPUstack
  95. Cakaj
  96. fadd
  97. call showFPUstack
  98. Cakaj
  99. fstp Vysledok
  100. call showFPUstack
  101. Cakaj
  102. fld Vysledok
  103. call showFPUstack
  104. Cakaj
  105. exit
  106. main ENDP
  107.  
  108. END main
  109.  
  110.  
  111. TITLE MASM Template (main.asm)
  112.  
  113. INCLUDE Irvine32.inc
  114. .data
  115. A REAL4 ?
  116. B REAL4 ?
  117. Vysledok REAL4 ?
  118. X REAL10 ?
  119. Y REAL10 ?
  120. Vysledok1 REAL10 ?
  121. Zadaj DB 0Dh,0Ah,"Zadaj cislo:",0
  122.  
  123. .code
  124.  
  125. Cakaj MACRO
  126. call CrLf
  127. call WaitMsg
  128. call CrLf
  129. ENDM
  130.  
  131. Citaj MACRO
  132. mov edx, OFFSET Zadaj
  133. call WriteString
  134. ENDM
  135.  
  136. main PROC
  137. call Clrscr
  138. finit ; st(0) st(1) st(2)
  139. Citaj
  140. call ReadFloat ; a
  141. Citaj
  142. call ReadFloat ; b a
  143. call showFPUstack
  144. Cakaj
  145. fadd
  146. call showFPUstack
  147. Cakaj
  148. fstp Vysledok
  149. call showFPUstack
  150. Cakaj
  151. fld Vysledok
  152. call showFPUstack
  153. Cakaj
  154. call WriteFloat
  155. Cakaj
  156. finit
  157. Citaj
  158. call ReadFloat ; x
  159. Citaj
  160. call ReadFloat ; y x
  161. call showFPUstack
  162. Cakaj
  163. fadd
  164. call showFPUstack
  165. Cakaj
  166. fstp Vysledok1
  167. call showFPUstack
  168. Cakaj
  169. fld Vysledok1
  170. call showFPUstack
  171. Cakaj
  172. call WriteFloat
  173. Cakaj
  174. exit
  175. main ENDP
  176.  
  177. END main
  178.  
  179.  
  180. TITLE MASM Template (main.asm)
  181.  
  182. INCLUDE Irvine32.inc
  183. .data
  184.  
  185. valA REAL8 1.5
  186. valB REAL8 2.5
  187. valC REAL8 3.0
  188. valD REAL8 ? ; malo by byt+6.0
  189.  
  190. N SDWORD 20
  191. X REAL8 3.5
  192. Z REAL8 ?
  193.  
  194. .code
  195.  
  196. Cakaj MACRO
  197. call CrLf
  198. call WaitMsg
  199. call CrLf
  200. ENDM
  201.  
  202.  
  203. main PROC ; Vypocet: valD = –valA + (valB * valC).
  204. call ClrSCr
  205. finit
  206. fld valA ; ST(0) = valA
  207. fchs ; zmena znamienka ST(0)
  208. fld valB ; vloz valB do ST(0)
  209. call showFPUstack
  210. Cakaj
  211. fmul valC ; ST(0) *= valC
  212. call showFPUstack
  213. Cakaj
  214. fadd ; ST(0) += ST(0) + ST(1)
  215. call WriteFloat
  216. fstp valD ; uloz ST(0) to valD a odstran zo zasobnika
  217. call showFPUstack
  218. Cakaj
  219.  
  220. ; Kombinacia celociselnej a realnej aritmetiky
  221. ; FPU ma instrukcie, ktore transformuju cele cisla do FP formatu a vlozia hodnoty do FP zasobnika
  222. ; Priklad : Z = N + X
  223. finit
  224. call ReadInt
  225. call WriteInt
  226. call CrLf
  227. mov N, eax
  228. call ReadFloat
  229. call WriteFloat
  230. call CrLf
  231. fstp X
  232. fild N ; vloz cele cislo do ST(0)
  233. fwait ; pockaj na spraqcovanie vynimiek
  234. call showFPUstack
  235. Cakaj
  236. fadd X ; scitaj obsah X s ST(0)
  237. call showFPUstack
  238. Cakaj
  239. fstp Z ; uloz obsah ST(0) do pamati
  240. call showFPUstack
  241. Cakaj
  242. exit
  243. main ENDP
  244.  
  245. END main
  246.  
  247.  
  248. TITLE MASM Template (main.asm)
  249.  
  250. INCLUDE Irvine32.inc
  251. .data
  252.  
  253. epsilon REAL8 1.0E-12 ; diferencia
  254. val1 REAL8 0.0 ; hodnota 1
  255. val2 REAL8 1.001E-13 ; hodnota 2
  256. Rovnake DB 0Dh,0Ah,"Su priblizne rovnake",0Dh,0Ah,0
  257. Ine DB 0Dh,0Ah,"Su ine....",0Dh,0Ah,0
  258. Zadaj DB 0Dh,0Ah,"Zadaj cislo:",0
  259.  
  260. .code
  261.  
  262. Cakaj MACRO
  263. call CrLf
  264. call WaitMsg
  265. call CrLf
  266. ENDM
  267.  
  268. Citaj MACRO
  269. mov edx, OFFSET Zadaj
  270. call WriteString
  271. call ReadFloat
  272. ENDM
  273.  
  274. ; Porovnanie FP hodot
  275. main PROC
  276. call ClrSCr
  277. finit
  278. fld epsilon
  279. fld val1
  280. call showFPUstack
  281. Cakaj
  282. fsub val2
  283. fabs
  284. call showFPUstack
  285. Cakaj
  286. fcomi ST(0),ST(1)
  287. ja Dalej
  288. mov edx, OFFSET Rovnake
  289. call writeSTring
  290. jmp Pokracuj
  291. Dalej:
  292. mov edx, OFFSET Ine
  293. call writeSTring
  294. Pokracuj:
  295. finit
  296. Citaj
  297. Citaj
  298. call showFPUstack
  299. Cakaj
  300. fcomi ST(0),ST(1)
  301. jz Koniec
  302. fsub
  303. fabs
  304. fld epsilon
  305. call showFPUstack
  306. Cakaj
  307. fcomi ST(0),ST(1)
  308. jnae Dalej1
  309. mov edx, OFFSET Rovnake
  310. call writeSTring
  311. jmp Pokracuj1
  312. Dalej1:
  313. mov edx, OFFSET Ine
  314. call writeSTring
  315. Pokracuj1:
  316. Cakaj
  317. jmp Pokracuj
  318. Koniec:
  319. call showFPUstack
  320. Cakaj
  321. exit
  322. main ENDP
  323.  
  324. END main
  325.  
  326. TITLE MASM Template (main.asm)
  327.  
  328. INCLUDE Irvine32.inc
  329. .data
  330.  
  331. intVal DWORD 25
  332.  
  333.  
  334. .code
  335.  
  336. Cakaj MACRO
  337. call CrLf
  338. call WaitMsg
  339. call CrLf
  340. ENDM
  341.  
  342.  
  343. main PROC
  344. call ClrSCr
  345.  
  346. ; synchronizacia FPU a CPU
  347. Dalej:
  348.  
  349. finit
  350. mov eax, intVal
  351. call WriteInt
  352. call CrLf
  353. fild intVal ; vloz cele cislo do ST(0)
  354. fwait ; cakaj na spracovanie vynimiek
  355. inc intVal ; inkrementuj cele cislo
  356. mov eax, intVal
  357. call WriteInt
  358. call CrLf
  359. call showFPUstack
  360. Cakaj
  361. exit
  362. main ENDP
  363.  
  364. END main
  365.  
  366.  
  367. TITLE MASM Template (main.asm)
  368.  
  369. INCLUDE Irvine32.inc
  370. .data
  371. A REAL4 -4.0
  372. B REAL4 1.0
  373. Vysledok REAL4 ?
  374.  
  375. Plus DB "Cislo je kladne",0Ah,0Dh,0
  376. Minus DB "Cislo je zaporne",0Dh,0Ah,0
  377. Exp DB "Exponent:",0
  378. Mant DB "Absolutna hodnota mantisy za radovou ciarkou:",0Dh,0Ah,0
  379. Cislo DB "1"
  380. Jedna DD 0400000h
  381. Hex DB "Hexadecimalne:",0
  382. Bin DB "Binarne:",0
  383.  
  384. .code
  385.  
  386. Cakaj MACRO
  387. call CrLf
  388. call WaitMsg
  389. call CrLf
  390. ENDM
  391.  
  392. PisRetaz MACRO pRetaz
  393. mov edx, offset pRetaz
  394. call WriteString
  395. ENDM
  396.  
  397. main PROC
  398. call Clrscr
  399. finit ; st(0) st(1) st(2)
  400. fld A ; a
  401. fld B ; b a
  402. call showFPUstack
  403. Cakaj
  404. fadd
  405. call showFPUstack
  406. Cakaj
  407. fstp Vysledok
  408. call showFPUstack
  409. Cakaj
  410. fld Vysledok
  411. call showFPUstack
  412. Cakaj
  413. exit
  414. main ENDP
  415.  
  416. END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement