An emulator, assembler, and disassembler for the Sega Game Gear
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

356 行
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