2010-12-12 112 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