Registres du cpu : data_t/addr_t ou uint8_t/uint16_t ?

Registres du cpu : data_t/addr_t ou uint8_t/uint16_t ?

by Niels Marco Lachat -
Number of replies: 1

Bonjour,

Est-ce que les registres du cpu doivent être déclarés dans cpu.h comme des data_t (addr_t pour les registres combinés) ou comme des uint8_t (respectivement uint16_t) ? 

Au final, ça revient au même, mais c'est plus une question de cohérence.

Merci d'avance

In reply to Niels Marco Lachat

Re: Registres du cpu : data_t/addr_t ou uint8_t/uint16_t ?

by Jean-Cédric Chappelier -

De notre coté, nous les avons mis comme uint8_t (et uint16_t) car nous avons plus voulu mettre en avant le fait qu'ils avaient 8 bits ; mais c'est clair qu'ils sont utilisés pour travailler sur des data_t au final. Donc, à mes yeux, sémantiquement ce serait en effet plutôt un data_t (le jour totalement hypothétique où l'on passe la Game Boy à 32 bits, il faudrait qu'ils suivent) ; mais il faudrait alors aussi static_assert que sizeof(addr_t) = 2 * sizeof(data_t) puisque l'on a conçu/codé en dur que l'on travaillait par paires de registres et que ces paires sont pour lire/travailler avec des adresses.

Bref, comme vous dites, au final ça revient au même et nous accepterons les deux (vu que nous avons nous-mêmes pas poussé les contraintes sémantiques à leur maximum).