2

我是计算机体系结构的新手。有人可以帮助我了解在处理几个复杂应用程序时使用有限寄存器。我的问题是应用程序程序员感兴趣的寄存器数量是固定的(例如 :: 80386 总共包含 16 个寄存器)。

如果我们想要更多的寄存器(例如:以适应增加的堆栈大小)会发生什么,是否将寄存器中的地址和数据写回主存?在多任务环境中,不同应用程序的寄存器数据和地址是否从主存之间移动并返回注册处理?

操作系统是否具有不干扰应用程序通用寄存器的特殊寄存器?

并建议任何好的资源来帮助初学者理解这些概念?

4

1 回答 1

1

寄存器是计算机中最快的存储器。任何特定 cpu 的指令集都是专门为寄存器架构编写的。你是对的,随着使用更多的寄存器空间,数据/地址必须备份到内存中。

就多任务系统而言,调度程序通常必须保存任务之间的执行上下文。此上下文涉及寄存器的当前状态以及其他状态位(取决于 cpu)。

一个好的第一步是学习汇编编程。它与硬件非常接近,您将彻底了解所有这些内容。一旦你有了它,拿起一本操作系统书,看看它是如何在更高层次上完成的。根据您的承诺(和好奇心),您还可以阅读一些小型实时操作系统的源代码,例如 FreeRTOS。阅读 8 位微控制器架构也很好,因为它们很简单。例如,AVR 或 HC08 是非常简单易学的架构。所有信息都是免费的;你只需要阅读它。享受。

于 2010-12-12T03:52:31.943 回答