2010-12-12 90 views
2

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

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

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

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

回答

1

寄存器是计算机中速度最快的内存。任何特定cpu的指令集都是专门为寄存器体系结构编写的。由于使用了更多的寄存器空间,因此必须将数据/地址备份到内存中。

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

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

+0

你能指点我到哪里可以学习寄存器,主存储器和处理等的理论/概念工作的基础知识? – Carbonizer 2010-12-12 04:05:38

+0

我建议从一本关于汇编语言的书开始。它与建筑物非常接近,您可以*学会如何进行组装。不幸的是,我对x86型架构没有任何建议,但是由于易于实验,我会提出这样的建议。 – caveman 2010-12-13 21:35:57