常看到一個位址中的記憶體內有不同的位元,他代表不同的旗標及暫存器,最常見的手法就是使用"結構"的"位域"。
+ typedef unsigned char BYTE;
+
+ typedef union
+ {
+ BYTE all;
+ struct
+ {
+ BYTE al:4; // 將 al 設定為8bit
+ BYTE ah:4; // 將 ah 設定為8bit
+ }part;
+ }REGISTER8;
+
+ REGISTER8 ax;
+ ax.all=0xCA;
+ printf("AH=%X, AL=%X\n",ax.part.ah, ax.part.al);
+
從原本變數的最小單位short int(2bytes),拆成上下兩個8bits的變數,這樣就符合PC裡AX暫存器分為上8bits(AH)及下8bits(AL)兩個暫存器了