“C語言” 讀書劄記(四)之[再續編譯執行]

來源:互聯網
上載者:User
 介紹   上一篇a.out(hello,world程式)執行之後發生了什嗎?這次通過系統硬體和操作做粗略的描述,這樣對我們也是有一些協助的。   如果中間若有誤,請不吝賜教。  從鍵盤上讀取a.out命令   當我們開啟我們的終端的時候,shell程式會執行它的指令,等待我們的輸入。  當我們在鍵盤上輸入"a.out",敲斷行符號時,shell就知道我們結束了命令的輸入。然後shell的指令就會逐一讀取目標檔案a.out的代碼和資料到寄存器,再把代碼和資料拷貝到主儲存空間。                                 流程圖如下

                                 那麼在硬體中是如何奔跑的呢? 

 

科普普及:

1、主存用來存放指令和指令處理的資料。

2、處理器(CPU的簡稱)是解釋(或執行)儲存在主存中指令的引擎。在任何一個時間點上,CPU中的PC(程式計數器)都指向主存中的某條機器語言指令。

 3、有一種DMA(直接儲存空間存取)技術,資料可以不通過處理器而直接從磁碟到達主儲存空間。

 

從儲存空間寫輸出串到顯示器  1、 一旦a.out目標檔案中的代碼和資料被載入到了主儲存空間,CPU就開始執行 main.c程式的主程式中機器語言指令。 2、 這些指令將"hello,world\n"串中的位元組從主儲存空間中拷貝到寄存器檔案。 3、 再從寄存器中檔案拷貝到顯示裝置,最終顯示在螢幕上。 流程圖:  

                                  那麼這些在硬體中是如何奔跑的呢?   

總結 從兩個角度分析上面的問題:  機器指令:最初是在磁碟上——》(程式載入時)拷貝到主存——》(處理器運行指令時)從主存拷貝到處理器。  資料串:最初是在磁碟上——》拷貝到主存——》顯示裝置。 參考文獻:《深入理解電腦系統》 

推薦             
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.