《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 計(jì)算機(jī)系統(tǒng)原理(二) hello world程序的運(yùn)行原理圖解

計(jì)算機(jī)系統(tǒng)原理(二) hello world程序的運(yùn)行原理圖解

2017-06-22
關(guān)鍵詞: 匯編語(yǔ)言

hello world的執(zhí)行

我們以linux系統(tǒng)為例,,當(dāng)我們執(zhí)行一個(gè)簡(jiǎn)單的打印字符串的C程序時(shí),,我們需要在命令行輸入./hello以及回車去執(zhí)行該程序。在整個(gè)執(zhí)行過(guò)程中,,計(jì)算機(jī)主要做了三件事,,或者說(shuō)經(jīng)歷了三個(gè)階段來(lái)完成程序的運(yùn)行,。

一、linux的外殼掃描用戶輸入的字符

當(dāng)我們?cè)阪I盤(pán)輸入./hello時(shí),,linux的外殼程序(也就是命令行)會(huì)掃描我們輸入的字符,,將這些字符一一讀入到寄存器當(dāng)中,然后再一一放入主存,。換句話說(shuō),,./hello這幾個(gè)字符是經(jīng)過(guò)了CPU中的寄存器從而到達(dá)了主存。

二,、加載hello文件的代碼以及數(shù)據(jù)到主存

這一過(guò)程的觸發(fā)是在我們按下回車的那一刻,,此時(shí)系統(tǒng)會(huì)將存儲(chǔ)在磁盤(pán)上的hello文件加載到主存,而此過(guò)程會(huì)利用一種叫做存儲(chǔ)器存取的技術(shù),,使得數(shù)據(jù)不通過(guò)寄存器直接到達(dá)主存,。

三、根據(jù)主存中代碼的指令執(zhí)行程序

在代碼以及程序所需要的數(shù)據(jù)加載到主存后,,CPU就開(kāi)始從main函數(shù)的起始位置,,依次執(zhí)行代碼中的指令。由于我們的代碼只是簡(jiǎn)單的輸出“hello world”這樣的字符串,,因此系統(tǒng)只是將這個(gè)字符串依次加載到寄存器,,然后傳輸?shù)斤@示器終端顯示,。

本章小結(jié)

本章只是簡(jiǎn)單的介紹了一下hello程序的執(zhí)行過(guò)程,我們可以簡(jiǎn)單的這么理解,,hello程序的執(zhí)行,,其實(shí)就是將數(shù)據(jù)和代碼加載到主存,并由CPU從主存獲取指令從而執(zhí)行的過(guò)程,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]