Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.91 KB | None | 0 0
  1. Talos ASM
  2.  
  3. An 'x' denotes any immediate value
  4. An 'r' denotes a register - 0 for register A, 1 for register B
  5. Instructions in <angled brackets> are useless, but reserving them should make logic easier
  6.  
  7. Control Instructions:
  8.  
  9. 00000000 - Nop
  10. 01000000 - Halt
  11.  
  12. 0r000001 - Move [!r] into [r]
  13. 0r000010 - Clear
  14. 0r000011 - ???
  15. 0r001000 - Load High Address
  16. 0r001001 - Store High Address
  17. 0r001010 - ???
  18. 0r001011 - ???
  19.  
  20. Arithmetic Instructions
  21. The high register bit is where the result is stored
  22. The low register bit (if it exists) is the source register/left register in the equation
  23.  
  24. e.g.
  25. 01011010 -> B = A / B
  26.  
  27. 0r010000 - Add
  28. 0r010010 - Multiply
  29.  
  30. 0r010001 - <Add>
  31. 0r010011 - <Multiply>
  32.  
  33. 0r01100r - Subtract
  34. 0r01101r - Divide
  35.  
  36. Logical Instructions:
  37. The two register bits work the same way as arithmetic.
  38.  
  39. 0r100000 - And
  40. 0r100010 - Or
  41. 0r101000 - Xor
  42.  
  43. 0r100001 - <And>
  44. 0r100011 - <Or>
  45. 0r101001 - <Xor>
  46.  
  47. 0r10101r - Invert
  48. 0r11000r - Logical Left Shift
  49. 0r11001r - Logical Right Shift
  50. 0r11100r - <Arithmetic Left Shift>
  51. 0r11101r - Arithmetic Right Shift
  52.  
  53.  
  54. 2 bit Immediates:
  55. All operations work on the single defined register.
  56. Immediates are unsigned.
  57.  
  58. e.g.
  59. 00001110 -> A = A - 2
  60.  
  61. 0r0001xx - Add Immediate
  62. 0r0011xx - Subtract Immediate
  63. 0r0101xx - ???
  64. 0r0111xx - ???
  65. 0r1001xx - Logical Left Shift Immediate
  66. 0r1011xx - Logical Right Shift Immediate
  67. 0r1101xx - <Arithmetic Left Shift Immediate>
  68. 0r1111xx - Arithmetic Right Shift Immediate
  69.  
  70. 4 bit immediate:
  71. Immediates are unsigned.
  72.  
  73. 1000xxxx - Jump
  74. 1100xxxx - Branch Equal to Zero
  75.  
  76. 1r01xxxx - Store
  77. 1r10xxxx - Load
  78. 1r11xxxx - Load Immediate
  79.  
  80.  
  81.  
  82. All instructions:
  83.  
  84. 00000000 - Nop
  85. 00000001 - Move B into A
  86. 00000010 - Clear A
  87. 00000011
  88. 000001xx - Add Immediate A
  89. 00001000 - Load High Address A
  90. 00001001 - Store High Address A
  91. 00001010
  92. 00001011
  93. 000011xx - Subtract Immediate A
  94. 00010000 - Add, Store A
  95. 00010001 - <Add, Store A>
  96. 00010010 - Multiply, Store A
  97. 00010011 - <Multiply, Store A>
  98. 000101xx
  99. 00011000 - Subtract A, Store A
  100. 00011001 - Subtract B, Store A
  101. 00011010 - Divide A, Store A
  102. 00011011 - Divide B, Store A
  103. 000111xx
  104. 00100000 - And, Store A
  105. 00100001 - <And, Store A>
  106. 00100010 - Or, Store A
  107. 00100011 - <Or, Store A>
  108. 001001xx - LLShift Immediate A
  109. 00101000 - Xor, Store A
  110. 00101001 - <Xor, Store A>
  111. 00101010 - Invert A, Store A
  112. 00101011 - Invert B, Store A
  113. 001011xx - LRShift Immediate A
  114. 00110000 - LLShift A, Store A
  115. 00110001 - LLShift B, Store A
  116. 00110010 - LRShift A, Store A
  117. 00110011 - LRShift B, Store A
  118. 001101xx - <ALShift Immediate A>
  119. 00111000 - <ALShift A, Store A>
  120. 00111001 - <ALShift B, Store A>
  121. 00111010 - ARShift A, Store A
  122. 00111011 - ARShift B, Store A
  123. 001111xx - ARShift Immediate A
  124. 01000000 - Halt
  125. 01000001 - Move B into A
  126. 01000010 - Clear B
  127. 01000011
  128. 010001xx - Add Immediate B
  129. 01001000 - Load High Address B
  130. 01001001 - Store High Address B
  131. 01001010
  132. 01001011
  133. 010011xx - Subtract Immediate B
  134. 00010000 - Add, Store B
  135. 00010001 - <Add, Store B>
  136. 00010010 - Multiply, Store B
  137. 00010011 - <Multiply, Store B>
  138. 000101xx
  139. 00011000 - Subtract A, Store B
  140. 00011001 - Subtract B, Store B
  141. 00011010 - Divide A, Store B
  142. 00011011 - Divide B, Store B
  143. 010111xx
  144. 01100000 - And, Store B
  145. 01100001 - <And, Store B>
  146. 01100010 - Or, Store B
  147. 01100011 - <Or, Store B>
  148. 011001xx - LLShift Immediate B
  149. 01101000 - Xor, Store B
  150. 01101001 - <Xor, Store B>
  151. 01101010 - Invert A, Store B
  152. 01101011 - Invert B, Store B
  153. 011011xx - LRShift Immediate B
  154. 01110000 - LLShift A, Store B
  155. 01110001 - LLShift B, Store B
  156. 01110010 - LRShift A, Store B
  157. 01110011 - LRShift B, Store B
  158. 011101xx - <ALShift Immediate B>
  159. 01111000 - <ALShift A, Store B>
  160. 01111001 - <ALShift B, Store B>
  161. 01111010 - ARShift A, Store B
  162. 01111011 - ARShift A, Store B
  163. 011111xx - ARShift Immediate B
  164. 1000xxxx - Jump
  165. 1001xxxx - Store A
  166. 1010xxxx - Load A
  167. 1011xxxx - Load Immediate A
  168. 1100xxxx - Branch Equal to Zero
  169. 1101xxxx - Store B
  170. 1110xxxx - Load B
  171. 1111xxxx - Load Immediate B
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement