執行語句「printf("hello world");」時,編譯器怎麼工作?

在不同層次上描述,執行語句「printf("hello world");」時,編譯器、操作系統、CPU 和硬體是如何工作,最終將結果顯示到計算機屏幕上的。


題主不妨先認真上課


執行這條語句的時候,關編譯器什麼事兒?


有本日文版的廣播體操,

你看不懂,

我(編譯器)幫你翻譯成你能看懂的中文(編譯)。

然後你看著懂了之後,

自己跟著說明做操(執行)。

你做操的時候,就已經跟我無關了。


從彙編的角度看,編譯器將"Hello, World!"字元串的偏移地址寫入可執行文件中,程序運行時將此地址值壓棧(push ax),然後使用 call 指令調用已連接在可執行文件中的_printf()運行庫函數來顯示該字元串。


程序員的自我修養,前面已經有人推薦了,我就看了這本書懂的。推薦


一句話

,取指執行。


程序員的自我修養,查看此書應該能找到答案。


推薦閱讀:

如何備份電腦里的數據?
為什麼windows系統有的時候明明物理內存還沒用滿就開始使用虛擬內存了?
求大神看看是哪個進程在後台調用瀏覽器訪問網站?
兩台電腦如何共用一個顯示器?
SICP的中文版翻譯好不好?值不值得入手學習?

TAG:操作系統 | 計算機 | 編譯器 |