cpu_dispatch()

cpu_dispatch()

by Sophie Sarah Ammann -
Number of replies: 2

Bonjour,

Devons-nous prendre en compte les carry et suivre les indications à la page 16 du pdf de cpu_dispatch_alu ? 

Par exemple, nous ne comprenons pas comment implémenter le premier case  ADD_A_HLR :

Première méthode : A += BUS[HL]  

Deuxième méthode : utiliser les méthodes de l'alu (en utilisant alu_add8 p.ex) et mettre à jour alu_output du cpu 





In reply to Sophie Sarah Ammann

Re: cpu_dispatch()

by Antoine Mehdi De Gendt -

Bonjour,

La seule différence entre ADD_A_HLR avec carry et ADD_A_HLR sans carry est le bit 3(4ème bit) de leur opcode. Je vous conseil de regarder la macro extract_carry dans cpu-alu.h qui, comme indiqué dans le sujet, gère très bien les deux cas (0 si le bit 3 de l'opcode est à 0 et 1 uniquement si le bit 3 de l'opcode est à 1 et si le fanion C est levé). Je vous invite aussi à regarder la macro do_cpu_arithm(aussi dans cpu-alu.h) qui utilise cette macro et pourrait vous aider à implémenter cette famille d'instruction.

La façon d'implémenter cette instruction est-elle plus claire pour vous?