Advertisement
Guest User

N2T - Basic.asm (final)

a guest
Apr 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // push constant 10
  2. @10
  3. D=A
  4. @SP
  5. A=M
  6. M=D
  7. @SP
  8. M=M+1
  9. // pop local 0
  10. @LCL
  11. D=M
  12. @0
  13. A=A+D
  14. D=A
  15. @13
  16. M=D
  17. @SP
  18. M=M-1
  19. @SP
  20. A=M
  21. D=M
  22. @13
  23. A=M
  24. M=D
  25. // push constant 21
  26. @21
  27. D=A
  28. @SP
  29. A=M
  30. M=D
  31. @SP
  32. M=M+1
  33. // push constant 22
  34. @22
  35. D=A
  36. @SP
  37. A=M
  38. M=D
  39. @SP
  40. M=M+1
  41. // pop argument 2
  42. @ARG
  43. D=M
  44. @2
  45. A=A+D
  46. D=A
  47. @13
  48. M=D
  49. @SP
  50. M=M-1
  51. @SP
  52. A=M
  53. D=M
  54. @13
  55. A=M
  56. M=D
  57. // pop argument 1
  58. @ARG
  59. D=M
  60. @1
  61. A=A+D
  62. D=A
  63. @13
  64. M=D
  65. @SP
  66. M=M-1
  67. @SP
  68. A=M
  69. D=M
  70. @13
  71. A=M
  72. M=D
  73. // push constant 36
  74. @36
  75. D=A
  76. @SP
  77. A=M
  78. M=D
  79. @SP
  80. M=M+1
  81. // pop this 6
  82. @THIS
  83. D=M
  84. @6
  85. A=A+D
  86. D=A
  87. @13
  88. M=D
  89. @SP
  90. M=M-1
  91. @SP
  92. A=M
  93. D=M
  94. @13
  95. A=M
  96. M=D
  97. // push constant 42
  98. @42
  99. D=A
  100. @SP
  101. A=M
  102. M=D
  103. @SP
  104. M=M+1
  105. // push constant 45
  106. @45
  107. D=A
  108. @SP
  109. A=M
  110. M=D
  111. @SP
  112. M=M+1
  113. // pop that 5
  114. @THAT
  115. D=M
  116. @5
  117. A=A+D
  118. D=A
  119. @13
  120. M=D
  121. @SP
  122. M=M-1
  123. @SP
  124. A=M
  125. D=M
  126. @13
  127. A=M
  128. M=D
  129. // pop that 2
  130. @THAT
  131. D=M
  132. @2
  133. A=A+D
  134. D=A
  135. @13
  136. M=D
  137. @SP
  138. M=M-1
  139. @SP
  140. A=M
  141. D=M
  142. @13
  143. A=M
  144. M=D
  145. // push constant 510
  146. @510
  147. D=A
  148. @SP
  149. A=M
  150. M=D
  151. @SP
  152. M=M+1
  153. // pop temp 6
  154. D=0
  155. @11
  156. A=A+D
  157. D=A
  158. @13
  159. M=D
  160. @SP
  161. M=M-1
  162. @SP
  163. A=M
  164. D=M
  165. @13
  166. A=M
  167. M=D
  168. // push local 0
  169. @LCL
  170. D=M
  171. @0
  172. A=A+D
  173. D=M
  174. @SP
  175. A=M
  176. M=D
  177. @SP
  178. M=M+1
  179. // push that 5
  180. @THAT
  181. D=M
  182. @5
  183. A=A+D
  184. D=M
  185. @SP
  186. A=M
  187. M=D
  188. @SP
  189. M=M+1
  190. // add
  191. @SP
  192. A=M-1
  193. D=M
  194. A=A-1
  195. M=M+D
  196. D=A+1
  197. @SP
  198. M=D
  199. // push argument 1
  200. @ARG
  201. D=M
  202. @1
  203. A=A+D
  204. D=M
  205. @SP
  206. A=M
  207. M=D
  208. @SP
  209. M=M+1
  210. // sub
  211. @SP
  212. A=M-1
  213. D=M
  214. A=A-1
  215. M=M-D
  216. D=A+1
  217. @SP
  218. M=D
  219. // push this 6
  220. @THIS
  221. D=M
  222. @6
  223. A=A+D
  224. D=M
  225. @SP
  226. A=M
  227. M=D
  228. @SP
  229. M=M+1
  230. // push this 6
  231. @THIS
  232. D=M
  233. @6
  234. A=A+D
  235. D=M
  236. @SP
  237. A=M
  238. M=D
  239. @SP
  240. M=M+1
  241. // add
  242. @SP
  243. A=M-1
  244. D=M
  245. A=A-1
  246. M=M+D
  247. D=A+1
  248. @SP
  249. M=D
  250. // sub
  251. @SP
  252. A=M-1
  253. D=M
  254. A=A-1
  255. M=M-D
  256. D=A+1
  257. @SP
  258. M=D
  259. // push temp 6
  260. D=0
  261. @11
  262. A=A+D
  263. D=M
  264. @SP
  265. A=M
  266. M=D
  267. @SP
  268. M=M+1
  269. // add
  270. @SP
  271. A=M-1
  272. D=M
  273. A=A-1
  274. M=M+D
  275. D=A+1
  276. @SP
  277. M=D
  278. // Infinite Loop
  279. (INFINITE_LOOP)
  280. @INFINITE_LOOP
  281. 0;JMP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement