Thema: Z80 Simulator

Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#19

Re: Z80 Simulator

  Alt 20. Jan 2006, 14:27
Zitat von Der_Unwissende:
du möchtest entweder 4 * 1 Byte einzeln oder 2 * 2 Byte ansprechen und kannst C. Bin nicht so der C Crack, aber gibt es bei dir kein Union?
Unions helfen hier nur bedingt.
Code:
union myunion {
  int reg16;
  struct two_regs {
    char reg81;
    char reg82
  } reg8s
}
Wenn char hier 8 Bit groß ist und int 16, funktioniert das prima. Ist aber char 16 Bit groß und int 32, wird es Probleme geben, denn Wenn man 8bit-Werte in reg8s.reg82 schreibt, schreibt man diese nicht an das zweite Byte von reg16, sondern an das dritte. Eine derartige Implementierung macht daher nur Sinn, wenn die Zielplattform native Datentypen mit 8 und 16 Bit kennt. Kennt die Zielplattform diese nicht, muss man einen solchen nativen Datentyp simulieren, also mit Bit-Operationen aus zwei 16bit-Werten, bei denen jeweils nur 8 verwendet werden, einen 16bit-Wert zusammenbasteln.
  Mit Zitat antworten Zitat