萬丈高樓平地起,計算機系統就像程序員金字塔的地基。理解了計算機系統的構造原理,在寫程序的道路上才能越走越遠。道理LZ很早就懂了,可是一直沒下定決心好好鑽研,或許是覺得日常工作中根本用不到這些,又或許是每次拿起書看到那些復雜的底層架構,看到存儲器,寄存器,CPU,總線等等這些概念就頭大 ...
計算機中的信息 位 上下文。進一步,信息可以分為兩大類:一類是數據,一類是指令。指令用來表明操作的動作,數據用來表明被操作的對象,這兩者同時也構成了一個完整的程序。 對於數據而言,我們先來談整數的表示和運算。無符號編碼表示無符號數,補碼表示有符號數,相信大家對這兩種編碼應該是非常熟悉的 無符號編碼沒有符號位,補碼的最高位表示符號位 。 在整數的運算方面一共有兩種,一種是算術運算,一種是邏輯運算。 ...
2015-01-15 12:54 6 3696 推薦指數:
萬丈高樓平地起,計算機系統就像程序員金字塔的地基。理解了計算機系統的構造原理,在寫程序的道路上才能越走越遠。道理LZ很早就懂了,可是一直沒下定決心好好鑽研,或許是覺得日常工作中根本用不到這些,又或許是每次拿起書看到那些復雜的底層架構,看到存儲器,寄存器,CPU,總線等等這些概念就頭大 ...
深入理解計算機系統 卡內基·梅隆一門棵。 原書第3版資料. 第三版源碼. 原書第2版資料. 計算機系統漫游 源文件到目標文件的翻譯過程可分為四個階段, 這四個階段的程序被稱為預處理器,編譯器,匯編器和鏈接器,它們一起構成了編譯系統(compilation ...
Computer Systems A Programmer's perspective 關於進程與線程的相關知識 進程 像hello這樣的程序在現代系統上運行時,操作系統會提供一種假象,就好像系統上只有這個程序在運行。程序看上去是獨占地使用處理器、主存和I/O設備。處理器看上去就 ...
你能獲得的對程序最大的加速比就是當你第一次讓它工作起來的時候。 在講解如何優化程序性能之前,我們首先要明確寫程序最主要的目標就是使它在所有可能的情況下都能正常工作,一個運行的很快的程序但是卻是錯誤的結果是沒有任何用處的,所以我們在進行程序性能優化之前,首先要保證程序能正常運行,且結果是 ...
在寫本章的內容之前,LZ先做個小廣告。其實也不算是什么廣告,就是LZ為了和各位猿友交流方便,另外也確實有個別猿友留言或者在博客里發短消息給LZ要聯系方式。因此LZ斗膽建立了一個有關《深入理解計算機系統》這本書的交流群,當然了,如果有哪位猿友有其它方面的問題,也可以在群里提出 ...
在進行本章的講解之前,我們先說明講解的機器語言型號。上一篇匯編語言和機器語言我們講過,機器語言是直接面向處理器(Processor:CPU)的程序設計語言,但是每一種這樣的微處理器(CPU)由於硬件設計和內部結構的不同,所以每一種微處理器都有自己的機器指令集,也就是機器語言。而匯編語言是便於 ...
一、為什么要學習和了解匯編 編譯器基於編程語言的規則,目標機器的指令集和操作系統遵循的慣例,經過一系列的階段生成機器代碼。GCC c語言編譯器以匯編代碼的形式產生輸出,匯編代碼是機器代碼的文本表示,給出程序中的每一條指令。然后GCC調用匯編和鏈接器,根據匯編代碼生成可執行的機器代碼。這一 ...
《深入理解計算機系統》,這本書,我多次想要好好完整的讀一遍,每次都是沒有堅持下去,但是作為一個開發者,自己想要成為為數不多的大牛之一,所以打算這次把這本書完整的好好讀一遍,並整理為相關的博客! 書的開頭說了一句話:計算機系統是由硬件和系統軟件組成,他們共同工作來運行應用程序。我們通常接觸更多 ...