Guest User

Untitled

a guest
Nov 22nd, 2016
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extern _calloc, _fdopen, _fprintf, _getchar, _putchar
  2. section .data
  3. write_mode db "w", 0
  4. error_outofmemory db "Fatal: The Operating System does not have enough memory available.", 0
  5. section .bss
  6. bf_memory resd 1
  7. section .text
  8. global _main
  9. _main:
  10. mov ebp, esp
  11. push dword 1
  12. push dword 30000
  13. call _calloc
  14. add esp, 8
  15. test eax, eax
  16. jz error_exit_outofmemory
  17. mov [bf_memory], eax
  18. mov edi, eax
  19. add edi, 1
  20. mov al, [edi]
  21. add al, 1
  22. mov [edi], al
  23. mov al, [edi]
  24. add al, 1
  25. mov [edi], al
  26. mov al, [edi]
  27. add al, 1
  28. mov [edi], al
  29. mov al, [edi]
  30. add al, 1
  31. mov [edi], al
  32. mov al, [edi]
  33. add al, 1
  34. mov [edi], al
  35. mov al, [edi]
  36. add al, 1
  37. mov [edi], al
  38. mov al, [edi]
  39. add al, 1
  40. mov [edi], al
  41. mov al, [edi]
  42. add al, 1
  43. mov [edi], al
  44. mov al, [edi]
  45. test al, al
  46. jz loop_end_9
  47. loop_start_9:
  48. mov al, [edi]
  49. add al, -1
  50. mov [edi], al
  51. add edi, -1
  52. mov al, [edi]
  53. add al, 1
  54. mov [edi], al
  55. mov al, [edi]
  56. add al, 1
  57. mov [edi], al
  58. mov al, [edi]
  59. add al, 1
  60. mov [edi], al
  61. mov al, [edi]
  62. add al, 1
  63. mov [edi], al
  64. mov al, [edi]
  65. add al, 1
  66. mov [edi], al
  67. mov al, [edi]
  68. add al, 1
  69. mov [edi], al
  70. mov al, [edi]
  71. add al, 1
  72. mov [edi], al
  73. mov al, [edi]
  74. add al, 1
  75. mov [edi], al
  76. mov al, [edi]
  77. add al, 1
  78. mov [edi], al
  79. add edi, 1
  80. mov al, [edi]
  81. test al, al
  82. jnz loop_start_9
  83. loop_end_9:
  84. add edi, -1
  85. mov al, [edi]
  86. push eax
  87. call _putchar
  88. add esp, 4
  89. add edi, 1
  90. add edi, 1
  91. mov al, [edi]
  92. add al, 1
  93. mov [edi], al
  94. add edi, 1
  95. mov al, [edi]
  96. add al, -1
  97. mov [edi], al
  98. mov al, [edi]
  99. test al, al
  100. jz loop_end_17
  101. loop_start_17:
  102. mov al, [edi]
  103. add al, 1
  104. mov [edi], al
  105. mov al, [edi]
  106. test al, al
  107. jnz loop_start_17
  108. loop_end_17:
  109. mov al, [edi]
  110. add al, 1
  111. mov [edi], al
  112. mov al, [edi]
  113. add al, 1
  114. mov [edi], al
  115. add edi, 1
  116. mov al, [edi]
  117. add al, 1
  118. mov [edi], al
  119. mov al, [edi]
  120. add al, 1
  121. mov [edi], al
  122. add edi, 1
  123. mov al, [edi]
  124. add al, 1
  125. mov [edi], al
  126. mov al, [edi]
  127. add al, 1
  128. mov [edi], al
  129. mov al, [edi]
  130. add al, 1
  131. mov [edi], al
  132. mov al, [edi]
  133. test al, al
  134. jz loop_end_27
  135. loop_start_27:
  136. add edi, 1
  137. mov al, [edi]
  138. test al, al
  139. jz loop_end_27_1
  140. loop_start_27_1:
  141. mov al, [edi]
  142. add al, -1
  143. mov [edi], al
  144. add edi, 1
  145. mov al, [edi]
  146. add al, 1
  147. mov [edi], al
  148. mov al, [edi]
  149. add al, 1
  150. mov [edi], al
  151. mov al, [edi]
  152. add al, 1
  153. mov [edi], al
  154. add edi, -1
  155. add edi, -1
  156. mov al, [edi]
  157. add al, 1
  158. mov [edi], al
  159. mov al, [edi]
  160. add al, 1
  161. mov [edi], al
  162. mov al, [edi]
  163. add al, 1
  164. mov [edi], al
  165. add edi, 1
  166. mov al, [edi]
  167. test al, al
  168. jnz loop_start_27_1
  169. loop_end_27_1:
  170. add edi, -1
  171. add edi, -1
  172. mov al, [edi]
  173. test al, al
  174. jnz loop_start_27
  175. loop_end_27:
  176. add edi, 1
  177. mov al, [edi]
  178. add al, -1
  179. mov [edi], al
  180. mov al, [edi]
  181. add al, -1
  182. mov [edi], al
  183. mov al, [edi]
  184. add al, -1
  185. mov [edi], al
  186. mov al, [edi]
  187. add al, -1
  188. mov [edi], al
  189. mov al, [edi]
  190. add al, -1
  191. mov [edi], al
  192. mov al, [edi]
  193. push eax
  194. call _putchar
  195. add esp, 4
  196. add edi, 1
  197. mov al, [edi]
  198. add al, -1
  199. mov [edi], al
  200. add edi, 1
  201. mov al, [edi]
  202. add al, 1
  203. mov [edi], al
  204. mov al, [edi]
  205. add al, 1
  206. mov [edi], al
  207. mov al, [edi]
  208. add al, 1
  209. mov [edi], al
  210. mov al, [edi]
  211. push eax
  212. call _putchar
  213. add esp, 4
  214. mov al, [edi]
  215. push eax
  216. call _putchar
  217. add esp, 4
  218. mov al, [edi]
  219. add al, 1
  220. mov [edi], al
  221. mov al, [edi]
  222. add al, 1
  223. mov [edi], al
  224. mov al, [edi]
  225. add al, 1
  226. mov [edi], al
  227. mov al, [edi]
  228. push eax
  229. call _putchar
  230. add esp, 4
  231. add edi, 1
  232. mov al, [edi]
  233. add al, -1
  234. mov [edi], al
  235. mov al, [edi]
  236. push eax
  237. call _putchar
  238. add esp, 4
  239. add edi, -1
  240. add edi, -1
  241. mov al, [edi]
  242. add al, 1
  243. mov [edi], al
  244. mov al, [edi]
  245. test al, al
  246. jz loop_end_53
  247. loop_start_53:
  248. add edi, 1
  249. mov al, [edi]
  250. test al, al
  251. jz loop_end_53_1
  252. loop_start_53_1:
  253. mov al, [edi]
  254. add al, 1
  255. mov [edi], al
  256. add edi, 1
  257. mov al, [edi]
  258. add al, 1
  259. mov [edi], al
  260. mov al, [edi]
  261. test al, al
  262. jnz loop_start_53_1
  263. loop_end_53_1:
  264. add edi, 1
  265. add edi, 1
  266. mov al, [edi]
  267. test al, al
  268. jnz loop_start_53
  269. loop_end_53:
  270. add edi, -1
  271. mov al, [edi]
  272. add al, -1
  273. mov [edi], al
  274. mov al, [edi]
  275. add al, -1
  276. mov [edi], al
  277. mov al, [edi]
  278. add al, -1
  279. mov [edi], al
  280. mov al, [edi]
  281. add al, -1
  282. mov [edi], al
  283. mov al, [edi]
  284. add al, -1
  285. mov [edi], al
  286. mov al, [edi]
  287. add al, -1
  288. mov [edi], al
  289. mov al, [edi]
  290. add al, -1
  291. mov [edi], al
  292. mov al, [edi]
  293. add al, -1
  294. mov [edi], al
  295. mov al, [edi]
  296. add al, -1
  297. mov [edi], al
  298. mov al, [edi]
  299. add al, -1
  300. mov [edi], al
  301. mov al, [edi]
  302. add al, -1
  303. mov [edi], al
  304. mov al, [edi]
  305. add al, -1
  306. mov [edi], al
  307. mov al, [edi]
  308. add al, -1
  309. mov [edi], al
  310. mov al, [edi]
  311. add al, -1
  312. mov [edi], al
  313. mov al, [edi]
  314. push eax
  315. call _putchar
  316. add esp, 4
  317. add edi, 1
  318. add edi, 1
  319. mov al, [edi]
  320. push eax
  321. call _putchar
  322. add esp, 4
  323. mov al, [edi]
  324. add al, 1
  325. mov [edi], al
  326. mov al, [edi]
  327. add al, 1
  328. mov [edi], al
  329. mov al, [edi]
  330. add al, 1
  331. mov [edi], al
  332. mov al, [edi]
  333. push eax
  334. call _putchar
  335. add esp, 4
  336. mov al, [edi]
  337. add al, -1
  338. mov [edi], al
  339. mov al, [edi]
  340. add al, -1
  341. mov [edi], al
  342. mov al, [edi]
  343. add al, -1
  344. mov [edi], al
  345. mov al, [edi]
  346. add al, -1
  347. mov [edi], al
  348. mov al, [edi]
  349. add al, -1
  350. mov [edi], al
  351. mov al, [edi]
  352. add al, -1
  353. mov [edi], al
  354. mov al, [edi]
  355. push eax
  356. call _putchar
  357. add esp, 4
  358. mov al, [edi]
  359. add al, -1
  360. mov [edi], al
  361. mov al, [edi]
  362. add al, -1
  363. mov [edi], al
  364. mov al, [edi]
  365. add al, -1
  366. mov [edi], al
  367. mov al, [edi]
  368. add al, -1
  369. mov [edi], al
  370. mov al, [edi]
  371. add al, -1
  372. mov [edi], al
  373. mov al, [edi]
  374. add al, -1
  375. mov [edi], al
  376. mov al, [edi]
  377. add al, -1
  378. mov [edi], al
  379. mov al, [edi]
  380. add al, -1
  381. mov [edi], al
  382. mov al, [edi]
  383. push eax
  384. call _putchar
  385. add esp, 4
  386. add edi, 1
  387. mov al, [edi]
  388. add al, 1
  389. mov [edi], al
  390. mov al, [edi]
  391. push eax
  392. call _putchar
  393. add esp, 4
  394. add edi, 1
  395. mov al, [edi]
  396. add al, 1
  397. mov [edi], al
  398. mov al, [edi]
  399. push eax
  400. call _putchar
  401. add esp, 4
  402. jmp normal_exit
  403. error_exit_outofmemory:
  404. push write_mode
  405. push dword 2
  406. call _fdopen
  407. add esp, 8
  408. push error_outofmemory
  409. push eax
  410. call _fprintf
  411. add esp, 8
  412. mov eax, -1
  413. jmp short exit
  414. normal_exit:
  415. mov eax, 0
  416. exit:
  417. ret
Add Comment
Please, Sign In to add comment