gpt4 book ai didi

c - C 中的寄存器数组

转载 作者:行者123 更新时间:2023-11-30 21:27:30 25 4
gpt4 key购买 nike

我需要一个数组来存储寄存器($t0,$t1,...)以及它们是否正在使用。

到目前为止,我得到了这个,其中第一个字段是寄存器名称,如果寄存器正在使用或未使用,第二个字段必须为 0 或 1。

char* registers[2][10] = {
{"$t0", "0"},
{"$t1", "0"},
{"$t2", "0"},
{"$t3", "0"},
{"$t4", "0"},
{"$t5", "0"},
{"$t6", "0"},
{"$t7", "0"},
{"$t8", "0"},
{"$t9", "0"}
};

但是我现在很迷茫,因为我不知道如何访问寄存器并检查它是否正在使用,或者如何将寄存器设置为已使用,等等。

最佳答案

假设您不是指的是硬件的寄存器:(如果您指的是它们,请参见下文)

我宁愿像这样构建一个寄存器结构:

struct register {
int is_used;
char* name;
}

要存储和访问它们,数组就足够了:

struct register* registers;

然后您可以访问您的“寄存器”,例如如下所示:

registers[n].is_used //where n is the position of your register you want to refer
<小时/>

要访问硬件寄存器(我假设您的意思是程序集寄存器 rax、rbx 等),您可以使用内联汇编(请参阅此处的 linux 和此处的 windows )Windows 链接上没有保证,我不为windows系统编程

然后就可以使用与上面相同的策略来存储和访问寄存器

关于c - C 中的寄存器数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com