51C语言编译后执行到一半,“C语言” 读书札记之[再续编译执行]
介紹
上一篇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、 再從寄存器中文件拷貝到顯示設備,最終顯示在屏幕上。
流程圖:
那么這些在硬件中是如何奔跑的呢?
總結
從兩個角度分析上面的問題:
機器指令:最初是在磁盤上——》(程序加載時)拷貝到主存——》(處理器運行指令時)從主存拷貝到處理器。
數據串:最初是在磁盤上——》拷貝到主存——》顯示設備。
【編輯推薦】
【責任編輯:張偉 TEL:(010)68476606】
點贊 0
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的51C语言编译后执行到一半,“C语言” 读书札记之[再续编译执行]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux底行模式显示信息,14天lin
- 下一篇: 计算机管理中添加用户属性,如何在计算机右