1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述)
文章目錄
- 1.計(jì)算機(jī)工作過(guò)程分為三步驟
- 2.從源程序到可執(zhí)行文件
- (1)預(yù)處理階段
- (2)編譯階段
- (3)匯編階段
- (4)鏈接階段
- 3.指令執(zhí)行過(guò)程的描述
- 舉個(gè)例子
- (1)取指令:PC->MAR->M->MDR->IR
- (2)分析指令:OP(IR)->CU
- (3)執(zhí)行指令:Ad(IR)->MAR->M->MDR->ACC
1.計(jì)算機(jī)工作過(guò)程分為三步驟
2.從源程序到可執(zhí)行文件
- 這里以UNIX系統(tǒng)中的GCC編譯器程序?yàn)槔?#xff0c;將C語(yǔ)言源程序轉(zhuǎn)換為可執(zhí)行文件(以二進(jìn)制磁盤(pán)文件形式存儲(chǔ))
(1)預(yù)處理階段
- 預(yù)處理器(cpp)對(duì)源程序中以#開(kāi)頭的命令進(jìn)行處理,例如將#include命令后面的.h文件內(nèi)容插入程序文件。輸出結(jié)果是一個(gè)以.i為擴(kuò)展名的源文件hello.i。
(2)編譯階段
- 編譯器(ccl)對(duì)預(yù)處理后的源程序進(jìn)行編譯,生成一個(gè)匯編語(yǔ)言程序hello.s。匯編語(yǔ)言源程序中的每一條語(yǔ)句都以一種文本格式描述了一條低級(jí)指令。
(3)匯編階段
- 匯編器(as)將hello.s 翻譯成機(jī)器語(yǔ)言指令,把這些指令打包成一個(gè)稱為可重定位目標(biāo)文件的hello.o,一種二進(jìn)制文件,用文本編輯器打開(kāi)會(huì)亂碼。
(4)鏈接階段
- 鏈接器(ld)將多個(gè)可重定位目標(biāo)文件和標(biāo)準(zhǔn)庫(kù)函數(shù)合并為一個(gè)可執(zhí)行目標(biāo)文件, 或簡(jiǎn)稱可執(zhí)行文件。本圖例子中,鏈接器將hello.o和庫(kù)函數(shù)printf所在的可重定位目標(biāo)模塊printf.o合并,生成可執(zhí)行文件hello。最終生成的可執(zhí)行文件被保存在磁盤(pán)上。
3.指令執(zhí)行過(guò)程的描述
- 簡(jiǎn)單描述:程序中第一條指令位于PC中,根據(jù)PC取出第一條指令,經(jīng)過(guò)譯碼,執(zhí)行步驟等,控制計(jì)算機(jī)各功能部件的協(xié)同運(yùn)行,完成這條指令的功能,并計(jì)算下一條指令的地址。用新得到的指令地址繼續(xù)讀出第二條指令并執(zhí)行,知道程序結(jié)束為止。
- 圖中從控制器送出的虛線是控制信號(hào)↓↓↓↓↓↓
- 可以控制如何修改PC以得到下一條指令的地址
- 可以控制ALU執(zhí)行什么運(yùn)算
- 可以控制主存進(jìn)行讀/寫(xiě)操作
舉個(gè)例子
????????例題:以取數(shù)指令(即將指令地址碼指示的存儲(chǔ)單元中的操作數(shù)取出后送至運(yùn)算器的累加器(ACC)中)為例進(jìn)行說(shuō)明。其信息流程如下:
累加器ACC:二進(jìn)制8位寄存器,存放操作數(shù)或運(yùn)算結(jié)果。
M : 主存儲(chǔ)器
(1)取指令:PC->MAR->M->MDR->IR
????????根據(jù)PC取指令到IR。將PC的內(nèi)容送MAR,MAR中的內(nèi)容直接送地址線,同時(shí)控制器將讀/寫(xiě)信號(hào)送讀/寫(xiě)信號(hào)線,主存根據(jù)地址線上的地址和讀信號(hào),從指定存儲(chǔ)單元讀出指令,送到數(shù)據(jù)線上,MDR從數(shù)據(jù)線接受指令信息,并傳送到IR中。
(2)分析指令:OP(IR)->CU
????????指令譯碼器解釋操作碼OP(IR)并送出控制信號(hào)。指令寄存器(IR)將操作碼OP(IR)送至指令譯碼器(ID)進(jìn)行解釋翻譯,將翻譯的信息送至操作控制器(OC),OC生成相應(yīng)的控制信號(hào),送到不同的執(zhí)行部件。
(3)執(zhí)行指令:Ad(IR)->MAR->M->MDR->ACC
????????取數(shù)操作。將IR中的指令地址碼送MAR,MAR將內(nèi)容送至地址線,同時(shí)控制器將讀/寫(xiě)信號(hào)送讀/寫(xiě)線,從主存指定單元讀出操作數(shù),并通過(guò)數(shù)據(jù)線送至MDR,再傳送到ACC中。
- 每取完一條指令,(PC)+1->PC,取下一條指令的地址。
總結(jié)
以上是生活随笔為你收集整理的1.2.4 计算机的工作过程(从源程序到可执行文件、指令执行过程的描述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.2.1 计算机系统的组成(硬件+软件
- 下一篇: 1.2.6 错题整理(组成原理)