Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. .data
  2. ileinstrukcji: .asciiz "Podaj ilosc instrukcji do sprawdzenia : \n"
  3. wpiszinstrukcje: .asciiz "Instrukcja : \n"
  4. buffer: .space 20
  5. iloscinstrukcji: .space 20
  6. udalo: .asciiz "udalo sie \n"
  7. jestblad: .asciiz "Podana instrukcja jest bledna\n"
  8. .text
  9. main:
  10.  
  11. la $a0,ileinstrukcji
  12. li $v0,4
  13. syscall
  14. li $v0,5
  15. syscall
  16. add $t0,$v0,$zero
  17. add $t3,$zero,$zero
  18. add $t8,$zero,$zero
  19. instrukcja:
  20. add $t4,$zero,$zero
  21. add $t5,$zero,$zero
  22. add $t6,$zero,$zero
  23. add $t7,$zero,$zero
  24. la $a0,wpiszinstrukcje
  25. li $v0,4
  26. syscall
  27. li $v0,8
  28. la $a0,buffer #zaladuj do t0 ile instrukcji przyjac
  29. li $a1,20
  30. syscall
  31. add $t1,$zero,$zero
  32. loop:
  33. lb $t2,buffer($t1)
  34. beq $t2,65,A
  35. beq $t2,74,J
  36. beq $t2,77,M
  37. beq $t2,78,N
  38. #beq $t0,iloscinstrukcji,koniec
  39. j blad
  40.  
  41. A:
  42. add $t4,$t4,$t2
  43. addi $t1,$t1,1
  44. lb $t2,buffer($t1)
  45. beq $t2,68,D1
  46. j blad
  47.  
  48. D1:
  49. add $t4,$t4,$t2
  50. addi $t1,$t1,1
  51. lb $t2,buffer($t1)
  52. beq $t2,68,D2
  53. j blad
  54.  
  55. D2:
  56. add $t4,$t4,$t2
  57. addi $t1,$t1,1
  58. lb $t2,buffer($t1)
  59. beq $t2,73,I
  60. beq $t2,32,spacja3cyfry
  61. j blad
  62.  
  63. I:
  64. add $t4,$t4,$t2
  65. addi $t1,$t1,1
  66. lb $t2,buffer($t1)
  67. beq $t2,32,spacjaTrzyCyfryDWA
  68. j blad
  69.  
  70. spacja3cyfry:
  71. addi $t1,$t1,1
  72. lb $t2,buffer($t1)
  73. blt $t2,47,blad
  74. blt $t2,58,cyfra1z3
  75. j blad
  76.  
  77. cyfra1z3:
  78. add $t5,$t5,$t2
  79. addi $t1,$t1,1
  80. lb $t2,buffer($t1)
  81. beq $t2,44,przecinek1z3
  82. j blad
  83.  
  84. przecinek1z3:
  85. addi $t1,$t1,1
  86. lb $t2,buffer($t1)
  87. blt $t2,47,blad
  88. blt $t2,58,cyfra2z3
  89. j blad
  90.  
  91. cyfra2z3:
  92. add $t6,$t6,$t2
  93. addi $t1,$t1,1
  94. lb $t2,buffer($t1)
  95. beq $t2,44,przecinek2z2
  96. j blad
  97.  
  98. przecinek2z2:
  99. addi $t1,$t1,1
  100. lb $t2,buffer($t1)
  101. blt $t2,47,blad
  102. blt $t2,58,cyfra3z3
  103. j blad
  104.  
  105. cyfra3z3:
  106. add $t7,$t7,$t2
  107. addi $t1,$t1,1
  108. lb $t2,buffer($t1)
  109. beq $t2,10,endline
  110. j blad
  111.  
  112.  
  113. spacjaTrzyCyfryDWA:
  114. addi $t1,$t1,1
  115. lb $t2,buffer($t1)
  116. blt $t2,47,blad
  117. blt $t2,58,cyfry1z3v2
  118. j blad
  119.  
  120. cyfry1z3v2:
  121. add $t5,$t5,$t2
  122. addi $t1,$t1,1
  123. lb $t2,buffer($t1)
  124. beq $t2,44,przecinek1z3v2
  125. j blad
  126.  
  127. przecinek1z3v2:
  128. addi $t1,$t1,1
  129. lb $t2,buffer($t1)
  130. blt $t2,47,blad
  131. blt $t2,58,cyfra2z3v2
  132. j blad
  133.  
  134. cyfra2z3v2:
  135. add $t6,$t6,$t2
  136. addi $t1,$t1,1
  137. lb $t2,buffer($t1)
  138. beq $t2,44,przecinek2z2v2
  139. j blad
  140.  
  141. przecinek2z2v2:
  142. addi $t1,$t1,1
  143. lb $t2,buffer($t1)
  144. blt $t2,47,blad
  145. blt $t2,58,cyfra3z3v2
  146. j blad
  147.  
  148. cyfra3z3v2:
  149. add $t7,$t7,$t2
  150. addi $t1,$t1,1
  151. lb $t2,buffer($t1)
  152. beq $t2,10,endline
  153. addi $t2,$t2,-48
  154. blt $t2,10,cyfra3z3v2
  155. j blad
  156.  
  157.  
  158.  
  159. N:
  160. add $t4,$t4,$t2
  161. addi $t1,$t1,1
  162. lb $t2,buffer($t1)
  163. beq $t2,79,oo1
  164. j blad
  165.  
  166. oo1:
  167. add $t4,$t4,$t2
  168. addi $t1,$t1,1
  169. lb $t2,buffer($t1)
  170. beq $t2,79,oo2
  171. j blad
  172.  
  173. oo2:
  174. add $t4,$t4,$t2
  175. addi $t1,$t1,1
  176. lb $t2,buffer($t1)
  177. beq $t2,80,P
  178. j blad
  179.  
  180. P:
  181. add $t4,$t4,$t2
  182. addi $t1,$t1,1
  183. lb $t2,buffer($t1)
  184. beq $t2,10,endline
  185. j blad
  186.  
  187. J:
  188. add $t4,$t4,$t2
  189. addi $t1,$t1,1
  190. lb $t2,buffer($t1)
  191. beq $t2,32,spacjaJ
  192. beq $t2,82,R
  193. beq $t2,65,AJAL
  194. j blad
  195.  
  196. spacjaJ:
  197. addi $t1,$t1,1
  198. lb $t2,buffer($t1)
  199. beq $t2,10,endline
  200. addi $t2,$t2,-32
  201. blt $t2,90,spacjaJ
  202. j blad
  203.  
  204. R:
  205. add $t4,$t4,$t2
  206. addi $t1,$t1,1
  207. lb $t2,buffer($t1)
  208. beq $t2,32,spacjaJR
  209. j blad
  210.  
  211. spacjaJR:
  212. add $t5,$t5,$t2
  213. addi $t1,$t1,1
  214. lb $t2,buffer($t1)
  215. beq $t2,10,endline
  216. blt $t2,47,blad
  217. blt $t2,58,spacjaJR
  218. j blad
  219.  
  220. AJAL:
  221. add $t4,$t4,$t2
  222. addi $t1,$t1,1
  223. lb $t2,buffer($t1)
  224. beq $t2,76,LJAL
  225. j blad
  226.  
  227. LJAL:
  228. add $t4,$t4,$t2
  229. addi $t1,$t1,1
  230. lb $t2,buffer($t1)
  231. beq $t2,32,spacjaJAL
  232. j blad
  233.  
  234. spacjaJAL:
  235. add $t5,$t5,$t2
  236. addi $t1,$t1,1
  237. lb $t2,buffer($t1)
  238. beq $t2,10,endline
  239. addi $t2,$t2,-32
  240. blt $t2,90,spacjaJAL
  241. j blad
  242.  
  243. M:
  244. add $t4,$t4,$t2
  245. addi $t1,$t1,1
  246. lb $t2,buffer($t1)
  247. beq $t2,85,U
  248. j blad
  249. U:
  250. add $t4,$t4,$t2
  251. addi $t1,$t1,1
  252. lb $t2,buffer($t1)
  253. beq $t2,76,L
  254. j blad
  255. L:
  256. add $t4,$t4,$t2
  257. addi $t1,$t1,1
  258. lb $t2,buffer($t1)
  259. beq $t2,84,T
  260. j blad
  261. T:
  262. add $t4,$t4,$t2
  263. addi $t1,$t1,1
  264. lb $t2,buffer($t1)
  265. beq $t2,32,spacjaMULT
  266. j blad
  267. spacjaMULT:
  268. addi $t1,$t1,1
  269. lb $t2,buffer($t1)
  270. blt $t2,47,blad
  271. blt $t2,58,cyfra1MULT
  272. j blad
  273. cyfra1MULT:
  274. add $t5,$t5,$t2
  275. addi $t1,$t1,1
  276. lb $t2,buffer($t1)
  277. beq $t2,44,przecinekMULT
  278. j blad
  279. przecinekMULT:
  280. add $t6,$t6,$t2
  281. addi $t1,$t1,1
  282. lb $t2,buffer($t1)
  283. blt $t2,47,blad
  284. blt $t2,58,endline
  285. j blad
  286.  
  287.  
  288.  
  289.  
  290.  
  291. endline:
  292. addi $t3,$t3,1
  293. la $a0,udalo
  294. li $v0,4
  295. syscall
  296. j stos2
  297. powrot:
  298. beq $t3,$t0,koniec
  299. j instrukcja
  300.  
  301. stos:
  302. addi $sp,$sp,-4
  303. sw $t7,0($sp)
  304. addi $t8,$t8,1
  305. addi $sp,$sp,-4
  306. sw $t6,0($sp)
  307. addi $t8,$t8,1
  308. addi $sp,$sp,-4
  309. sw $t5,0($sp)
  310. addi $t8,$t8,1
  311. addi $sp,$sp,-4
  312. sw $t4,0($sp)
  313. addi $t8,$t8,1
  314. j powrot
  315.  
  316. blad:
  317. la $a0,jestblad
  318. li $v0,4
  319. syscall
  320. j instrukcja
  321. koniec:
  322. j wyswietl
  323.  
  324. wyswietl:
  325. lw $t9,0($sp)
  326. addi $sp,$sp,4
  327. la $a0,($t9)
  328. li $v0,4
  329. syscall
  330. addi $t8,$t8,-1
  331. beq $t8,0,zakoncz
  332. j wyswietl
  333. zakoncz:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement