An emulator, assembler, and disassembler for the Sega Game Gear
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

356 lignes
5.1 KiB

  1. # Copyright (C) 2014-2015 Ben Kurtovic <ben.kurtovic@gmail.com>
  2. # Released under the terms of the MIT License. See LICENSE for details.
  3. # *** ASM Instruction Description File ***
  4. # This file is used to generate 'instructions.inc.c'.
  5. # `make` should trigger a rebuild when this file is modified; if not, use:
  6. # `python scripts/update_asm_instructions.py`.
  7. ---
  8. adc:
  9. args: yes
  10. cases:
  11. - type: [register, register]
  12. cases:
  13. - cond: [a, a]
  14. return: [0x8F]
  15. - cond: [a, b]
  16. return: [0x88]
  17. - cond: [a, c]
  18. return: [0x89]
  19. - cond: [a, d]
  20. return: [0x8A]
  21. - cond: [a, e]
  22. return: [0x8B]
  23. - cond: [a, h|ih]
  24. return: [0x8C]
  25. - cond: [a, l|il]
  26. return: [0x8D]
  27. - cond: [hl, bc]
  28. return: [0xED, 0x4A]
  29. - cond: [hl, de]
  30. return: [0xED, 0x5A]
  31. - cond: [hl, hl]
  32. return: [0xED, 0x6A]
  33. - cond: [hl, sp]
  34. return: [0xED, 0x7A]
  35. - type: [register, immediate]
  36. cases:
  37. - cond: [a, u8]
  38. return: [0xCE, u8]
  39. - type: [register, indirect_hl_or_indexed]
  40. cases:
  41. - cond: [a, _]
  42. return: [0x8E]
  43. add:
  44. args: yes
  45. cases:
  46. - type: [register, register]
  47. cases:
  48. - cond: [a, a]
  49. return: [0x87]
  50. - cond: [a, b]
  51. return: [0x80]
  52. - cond: [a, c]
  53. return: [0x81]
  54. - cond: [a, d]
  55. return: [0x82]
  56. - cond: [a, e]
  57. return: [0x83]
  58. - cond: [a, h|ih]
  59. return: [0x84]
  60. - cond: [a, l|il]
  61. return: [0x85]
  62. - cond: [hl|i, bc]
  63. return: [0x09]
  64. - cond: [hl|i, de]
  65. return: [0x19]
  66. - cond: [hl|i, hl]
  67. return: [0x29]
  68. - cond: [hl|i, sp]
  69. return: [0x39]
  70. - type: [register, immediate]
  71. cases:
  72. - cond: [a, u8]
  73. return: [0xC6, u8]
  74. - type: [register, indirect_hl_or_indexed]
  75. cases:
  76. - cond: [a, _]
  77. return: [0x86]
  78. # and:
  79. # args: no
  80. # return: error
  81. # bit:
  82. # args: no
  83. # return: error
  84. # call:
  85. # args: no
  86. # return: error
  87. ccf:
  88. args: no
  89. return: [0x3F]
  90. # cp:
  91. # args: no
  92. # return: error
  93. cpd:
  94. args: no
  95. return: [0xED, 0xA9]
  96. cpdr:
  97. args: no
  98. return: [0xED, 0xB9]
  99. cpi:
  100. args: no
  101. return: [0xED, 0xA1]
  102. cpir:
  103. args: no
  104. return: [0xED, 0xB1]
  105. cpl:
  106. args: no
  107. return: [0x2F]
  108. daa:
  109. args: no
  110. return: [0x27]
  111. # dec:
  112. # args: no
  113. # return: error
  114. di:
  115. args: no
  116. return: [0xF3]
  117. # djnz:
  118. # args: no
  119. # return: error
  120. ei:
  121. args: no
  122. return: [0xFB]
  123. # ex:
  124. # args: no
  125. # return: error
  126. exx:
  127. args: no
  128. return: [0xD9]
  129. halt:
  130. args: no
  131. return: [0x76]
  132. # im:
  133. # args: no
  134. # return: error
  135. # in:
  136. # args: no
  137. # return: error
  138. # inc:
  139. # args: no
  140. # return: error
  141. ind:
  142. args: no
  143. return: [0xED, 0xAA]
  144. indr:
  145. args: no
  146. return: [0xED, 0xBA]
  147. ini:
  148. args: no
  149. return: [0xED, 0xA2]
  150. inir:
  151. args: no
  152. return: [0xED, 0xB2]
  153. # jp:
  154. # args: no
  155. # return: error
  156. # jr:
  157. # args: no
  158. # return: error
  159. # ld:
  160. # args: no
  161. # return: error
  162. ldd:
  163. args: no
  164. return: [0xED, 0xA8]
  165. lddr:
  166. args: no
  167. return: [0xED, 0xB8]
  168. ldi:
  169. args: no
  170. return: [0xED, 0xA0]
  171. ldir:
  172. args: no
  173. return: [0xED, 0xB0]
  174. neg:
  175. args: no
  176. return: [0xED, 0x44]
  177. nop:
  178. args: no
  179. return: [0x00]
  180. # or:
  181. # args: no
  182. # return: error
  183. otdr:
  184. args: no
  185. return: [0xED, 0xBB]
  186. otir:
  187. args: no
  188. return: [0xED, 0xB3]
  189. # out:
  190. # args: no
  191. # return: error
  192. outd:
  193. args: no
  194. return: [0xED, 0xAB]
  195. outi:
  196. args: no
  197. return: [0xED, 0xA3]
  198. # pop:
  199. # args: no
  200. # return: error
  201. # push:
  202. # args: no
  203. # return: error
  204. # res:
  205. # args: no
  206. # return: error
  207. # ret:
  208. # args: no
  209. # return: error
  210. reti:
  211. args: no
  212. return: [0xED, 0x4D]
  213. retn:
  214. args: no
  215. return: [0xED, 0x45]
  216. # rl:
  217. # args: no
  218. # return: error
  219. rla:
  220. args: no
  221. return: [0x17]
  222. # rlc:
  223. # args: no
  224. # return: error
  225. rlca:
  226. args: no
  227. return: [0x07]
  228. rld:
  229. args: no
  230. return: [0xED, 0x6F]
  231. # rr:
  232. # args: no
  233. # return: error
  234. rra:
  235. args: no
  236. return: [0x1F]
  237. # rrc:
  238. # args: no
  239. # return: error
  240. rrca:
  241. args: no
  242. return: [0x0F]
  243. # rrd:
  244. # args: no
  245. # return: error
  246. # rst:
  247. # args: no
  248. # return: error
  249. # sbc:
  250. # args: no
  251. # return: error
  252. scf:
  253. args: no
  254. return: [0x37]
  255. # set:
  256. # args: no
  257. # return: error
  258. # sl1:
  259. # args: no
  260. # return: error
  261. # sla:
  262. # args: no
  263. # return: error
  264. # sll:
  265. # args: no
  266. # return: error
  267. # sls:
  268. # args: no
  269. # return: error
  270. # sra:
  271. # args: no
  272. # return: error
  273. # srl:
  274. # args: no
  275. # return: error
  276. # sub:
  277. # args: no
  278. # return: error
  279. # xor:
  280. # args: no
  281. # return: error