通用寄存器

时间:2010-12-12 03:33:33

标签: stack cpu-registers

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

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

操作系统是否有专门的寄存器,不会干扰应用通用寄存器?

并建议为初学者理解这些概念有什么好的资源吗?

1 个答案:

答案 0 :(得分:1)

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

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

良好的第一步是学习装配编程。它非常接近硬件,你将彻底了解所有这些东西。完成后,请选择一本操作系统手册,了解它是如何在更高级别完成的。根据您的承诺(和好奇心),您还可以阅读一些较小的实时操作系统的源代码,例如FreeRTOS。阅读8位微控制器架构也很不错,因为它们很简单。例如,AVR或HC08是非常简单的架构。所有信息都是免费的;你只需要阅读它。 享受。