Ich bin versucht, einen Gameboy-Emulator in C, und bin derzeit in dem Prozess zu schreiben, zu entscheiden, wie das folgende Verhalten zu implementieren:Ist es möglich, zwei uint8_t-Zeiger auf die erste und zweite Hälfte eines Wertes zu erstellen, auf den ein uint16_t-Zeiger zeigt?
- Zwei 8-Bit-Register kombiniert und als ein einzigen behandelt werden können 16- Bitregister
- den Wert eines der 8-Bit-Register in der Pairing-Wechsel sollte
beispielsweise den Wert des kombinierten Registers ändern, Register A und F, die Register 8-Bit sind, können sein gemeinsam als das 16-Bit-Register AF verwendet. Wenn sich jedoch der Inhalt der Register A und F ändert, sollten sich diese Änderungen in nachfolgenden Verweisen zum Registrieren von AF widerspiegeln.
Wenn ich Register AF als uint16_t*
implementiere, kann ich den Inhalt der Register A und F als uint8_t*
's speichern, der auf das erste bzw. zweite Byte des Registers AF zeigt? Wenn nicht, würden andere Vorschläge geschätzt werden :)
EDIT: Nur um zu klären, ist dies eine sehr ähnliche Architektur wie die Z80
Versuchen Sie eine Union ... aber achten Sie auf Endianness. – Dmitri
es ist auch ähnlich zu x86 –