Un désassembleur pour Chip8
En ce moment je bricole un émulateur pour Chip8 en JRuby. Un des outils que j’ai écrit en Ruby pour cet émulateur est c8dasm, un désassembleur pour Chip8.
Si vous avez besoin d’un tel outil, si vous voulez étudier l’intérieur d’un désassembleur, ou si vous êtes simplement curieux, vous trouverez le code en ligne.
Si vous voulez voir ce que ça donne, voici un exemple:
$ c8dasm MAZE
200:a21e LD I, 21e ;Puts 21e into register I.
202:c201 RND V2, 01 ;Puts random byte AND 01 into register V2.
204:3201 SE V2, 01 ;Skip next instruction if V2 = 01.
206:a21a LD I, 21a ;Puts 21a into register I.
208:d014 DRW V0, V1, 4 ;Draws 4-byte sprite from I at (V0, V1)
20a:7004 ADD V0, 04 ;V0 = V0 + 04.
20c:3040 SE V0, 40 ;Skip next instruction if V0 = 40.
20e:1200 JP 200 ;Jump to location 200.
210:6000 LD V0, 00 ;Puts the value 00 into register V0.
212:7104 ADD V1, 04 ;V1 = V1 + 04.
[...]
/ / / / / / / / / /