cyruswachong

crash

Aug 3rd, 2018
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. .global crash
  2.  
  3. crash:
  4.  
  5. PUSH {R12}
  6. LDR R12, =ZSpare
  7. LDR R11, [R12, #150]
  8. POP {R12}
  9.  
  10. LDR R10, =#0xE0001030
  11. MOV R9, #48
  12. STR R9, [R10]
  13. MOV R9, #120
  14. STR R9, [R10]
  15. LSR R9, R8, #4
  16. AND R9, #0b00001111
  17. CMP R9, #10
  18. BLGE letter
  19. BLLT num
  20. B crash2
  21.  
  22. crash2:
  23. LSR R9, R8, #0
  24. AND R9, #0b00001111
  25. CMP R9, #10
  26. BLGE letter
  27. BLLT num
  28. B crash3
  29.  
  30.  
  31.  
  32. crash3:
  33.  
  34.  
  35. ;@ Print the invalid intruction and its location in HEX
  36. ;@ Should probably loop back to execute or something
  37.  
  38.  
  39. MOV R9, #32
  40. STR R9, [R10]
  41. MOV R9, #64
  42. STR R9, [R10]
  43. MOV R9, #32
  44. STR R9, [R10]
  45. MOV R9, #48
  46. STR R9, [R10]
  47. MOV R9, #120
  48. STR R9, [R10]
  49. ;@LDR R11, =#0xffffffff;@overide ZPC value for testing
  50. LSR R9, R11, #28
  51. CMP R9, #10
  52. BLGE letter
  53. BLLT num
  54. B crash4
  55.  
  56. crash4:
  57. LSR R9, R11, #24
  58. AND R9, #0b00001111
  59. CMP R9, #10
  60. BLGE letter
  61. BLLT num
  62. B crash5
  63.  
  64. crash5:
  65. LSR R9, R11, #20
  66. AND R9, #0b00001111
  67. CMP R9, #10
  68. BLGE letter
  69. BLLT num
  70. B crash6
  71.  
  72. crash6:
  73. LSR R9, R11, #16
  74. AND R9, #0b00001111
  75. CMP R9, #10
  76. BLGE letter
  77. BLLT num
  78. B crash7
  79.  
  80. crash7:
  81. LSR R9, R11, #12
  82. AND R9, #0b00001111
  83. CMP R9, #10
  84. BLGE letter
  85. BLLT num
  86. B crash8
  87.  
  88. crash8:
  89. LSR R9, R11, #8
  90. AND R9, #0b00001111
  91. CMP R9, #10
  92. BLGE letter
  93. BLLT num
  94. B crash9
  95.  
  96. crash9:
  97. LSR R9, R11, #4
  98. AND R9, #0b00001111
  99. CMP R9, #10
  100. BLGE letter
  101. BLLT num
  102. B crash10
  103.  
  104. crash10:
  105. LSR R9, R11, #0
  106. AND R9, #0b00001111
  107. CMP R9, #10
  108. BLGE letter
  109. BLLT num
  110.  
  111. LDR R9, = ZSpare
  112. LDR R9, [R9, #100]
  113.  
  114.  
  115.  
  116. LDR R10, =#0xE0001030
  117. MOV R11, #10
  118. STR R11, [R10]
  119. MOV R11, #79
  120. STR R11, [R10]
  121. MOV R11, #80
  122. STR R11, [R10]
  123. MOV R11, #69
  124. STR R11, [R10]
  125. MOV R11, #82
  126. STR R11, [R10]
  127. MOV R11, #65
  128. STR R11, [R10]
  129. MOV R11, #78
  130. STR R11, [R10]
  131. MOV R11, #68
  132. STR R11, [R10]
  133. MOV R11, #83
  134. STR R11, [R10]
  135. MOV R11, #58
  136. STR R11, [R10]
  137. SUBS R9, #1
  138. BMI done
  139. MOV R8, R0
  140. MOV R7, #12
  141.  
  142. BL printOpcode
  143. SUBS R9, #1
  144. BMI done
  145. MOV R8, R1
  146. MOV R7, #12
  147. BL printOpcode
  148. SUBS R9, #1
  149. BMI done
  150. MOV R8, R2
  151. MOV R7, #12
  152. BL printOpcode
  153. SUBS R9, #1
  154. BMI done
  155. MOV R8, R3
  156. MOV R7, #12
  157. BL printOpcode
  158. SUBS R9, #1
  159. BMI done
  160.  
  161.  
  162. printOpcode:
  163. PUSH {R14}
  164. MOV R11, #10
  165. STR R11, [R10]
  166. MOV R11, #13
  167. STR R11, [R10]
  168. MOV R11, #48
  169. STR R11, [R10]
  170. MOV R11, #120
  171. STR R11, [R10]
  172. printOpcode1:
  173. LSR R11, R8, R7
  174. AND R11, #0b00001111
  175. CMP R11, #10
  176. BLGE letter_op
  177. BLLT num_op
  178. SUBS R7, #4
  179. POPMI {R15}
  180. B printOpcode1
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. B done
  188.  
  189.  
  190.  
  191. letter_op:
  192. PUSH {R14}
  193. ADD R11, #87
  194. STR R11, [R10]
  195. POP {R15}
  196.  
  197. num_op:
  198. PUSH {R14}
  199. ADD R11, #48
  200. STR R11, [R10]
  201. POP {R15}
  202.  
  203.  
  204.  
  205.  
  206. letter:
  207. PUSH {R14}
  208. ADD R9, #87
  209. STR R9, [R10]
  210. POP {R15}
  211.  
  212. num:
  213. PUSH {R14}
  214. ADD R9, #48
  215. STR R9, [R10]
  216. POP {R15}
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. done:
  231. b done
Add Comment
Please, Sign In to add comment