組合語言和計算機組成

簡單來說,這本書講述了計算機如何工作。在本書的第一部分,我們將透過編寫計算機程式來探索計算機行為。與大多數程式設計師不同,我們將為計算機編寫最基本級別的程式。我們將使用匯編程式碼和機器語言直接對它們發出指令,目的是瞭解“幕後”發生了什麼。這種型別的程式設計曾經在效能至關重要的任何地方都很常見,但在如今 CPU 週期充足且廉價的龐大記憶體裝置的時代,很少有人編寫彙編程式碼。儘管編寫這種程式的藝術正在變得越來越少見,但學習組合語言仍然是一項有價值的追求,因為它揭示了機器內部的工作原理,並教會程式設計師“像計算機一樣思考”。彙編探索將從為 x86 系列處理器編寫程式開始。在後面的章節中,我們將研究其他體系結構和指令集。在整個組合語言章節中,想法將以儘可能通用的方式呈現,以便讀者可以輕鬆地過渡到任何計算平臺/作業系統環境。
在本書的第二部分,我們將探索數位電子學,目的是設計一個 CPU。在本節中,我們將使用邏輯電路模擬器來組裝計算機。您將能夠在此虛擬計算機上執行軟體,如果您真的想的話,您還可以用物理硬體來實現它。完成本書的這一部分後,您將對計算機操作背後的理論有深入的瞭解。在第二部分的最後一章,我們將探索各種示例程式,並提出一些關於我們設計的計算機如何擴充套件的想法。
我主要為諾克斯維爾學院的學生編寫這本書,他們將在關於計算機組織的兩部分課程中使用這本書。我希望這本書對其他學生以及公眾中的好奇人士有用。我假設您對計算機程式設計一無所知,因為這些課程是我們在諾克斯維爾學院的計算機科學課程中的第一門課程。為了享受這本書,您只需要具備基本的算術知識和一點耐心。這門課程的關鍵是不被我們要探索內容的複雜性所嚇倒。我將盡力使文字儘可能友好,我們將一步一步地完成所有內容。我希望您喜歡用這本書探索計算機的內部工作原理!