#include <iostream>
static union {
struct {unsigned short AX;} WORD;
struct {unsigned char AL;unsigned char AH;} BYTE;
} Regs;

int main(){
using std::cout;
Regs.WORD.AX=0xabcd;
cout << std::hex;
cout << "AX=" << Regs.WORD.AX << " AH=" << (int)Regs.BYTE.AH << " AL=" << (int)Regs.BYTE.AL << '\n';

Regs.BYTE.AH=0x12;
cout << "AX=" << Regs.WORD.AX << " AH=" << (int)Regs.BYTE.AH << " AL=" << (int)Regs.BYTE.AL << '\n';
}
