如果我使用struct,它将占用内存,这与实际寄存器不同,在实际寄存器中,a1和ah一起构成ax寄存器,并且eax寄存器与ax寄存器合并。如果我使用union,a1和ah值将在real中的相同位置,它们是2个独立的寄存器。我怎样才能获得eax寄存器的结构?我已经注意到在dos. h头(在c中)有“union regs”,它具有我需要的结构。但在我的机器上,没有这样的“union regs”。到目前为止,我尝试过:-
struct regs {
uint32 eax, ebx, ecx, edx, esi, edi, esp, ebp;
uint16 ax, bx, cx, dx;
uint8 ah, al, bh, bl, ch, cl, dh, dl;
};
1条答案
按热度按时间rdlzhqv91#
@塞巴斯蒂安提到我应该将结构和联合体结合起来得到这样的架构。我不确定嵌套的结构和联合体是否会这样,但我尝试了一下,它起作用了:-
请注意,只要相同层级的不同成员没有相同的名称,就可以使用没有名称的结构或等位。