繁体   English   中英

"如何在c ++中获取eax寄存器的结构"

[英]how to acquire a structure of eax register in c++

如果我使用结构,它将占用内存,这与实际寄存器不同,其中 al 和 ah 一起构成 ax 寄存器,并且 eax 寄存器与 ax 寄存器合并。 如果我使用联合,al 和 ah 值将在同一个地方,实际上它们是 2 个单独的寄存器。 如何获取 eax 寄存器的结构? 我注意到在 dos.h 标头(在 c 中)有“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;
};

@Sebastian 提到我应该结合结构和联合来获得这种架构。 我不确定嵌套结构和联合是否会,但我试过了,它奏效了:-

union {int32 eax; union {int16 ax; struct {int8 ah, al;};};} reg_eax;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM