C 輸出hello world,請從電子電路 記憶體CPU 程式層面解釋一下?

時間 2021-05-29 22:17:49

1樓:「已登出」

完全寫完篇幅太多,

大約就是把這些字元『h,e,l,l,o』按時序從介面傳輸到顯示器,你的問題涉及到

1、如何把c code編譯成機器碼。《編譯原理》

2、這些機器碼怎樣使核心通過 cpu暫存器讀寫來呼叫通訊介面。《計算機結構》

3、這些暫存器的功能是怎麼實現的。《數位電路》

4、如何正確傳輸這些資料。《通訊協議》

5、顯示器如何將這些資料顯示到螢幕。

以上只是粗略提要,具體還有很多,

比如怎樣保證數位電路的執行《模擬電路》。

怎樣保證各式裝置通配

完全列出來工作量太大。

2樓:

C++輸出hello world,請從電子電路、記憶體、CPU、程式層面解釋一下?

自製8位計算機

矽之美大宗師 (另外特別解釋一下「大宗師」的含義,「宗」指敬仰、尊崇,「大宗師」意思是最值得敬仰、尊崇的老師。誰夠得上稱作這樣的老師呢?那就是「道」。

換句話,也就是說,大宗師 = 道,我沒有稱自己是「大宗師」,更不會自稱為「道」。乙個知友因為自己不理解「大宗師」的含義而對我開嘲諷模式,被我兌了,希望大家能夠理解其意思,避免類似誤會發生。參考鏈結

莊子·大宗師全文_原文|翻譯_古詩文網)

自製簡易OS

自製編譯器

有知友說學習完數位電路、模擬電路、計算機體系結構、彙編就可以回答這些問題,我的回答是,還不行。為什麼這麼肯定呢?因為他們說的這些我都學了。

看我的最高贊回答:

知乎使用者:程式設計師對計算機背後的執行機制的掌握是不是很有必要?

下面是我之前學習所做的筆記:

課程及筆記分享(一):CMU和ETHZ的《計算機體系結構》

課程及筆記分享(二):國防科技大學《模擬電子技術基礎》

課程及筆記分享(三):國防科技大學《數字電子技術基礎》

課程及筆記分享(四):南京大學《計算機系統基礎》(上)

課程及筆記分享(五):清華大學《計算機組成原理》

課程及筆記分享(六):中國科技大學《編譯原理》

課程及筆記分享(七):蘇黎世聯邦理工學院(ethz)《數位電路設計》

組合語言的我沒有做筆記,但我用的書是王爽的《組合語言》那本書。

PS:為什麼大家覺得勵志啊?我一點也沒有覺得勵志,就是之前的問題弄明白了,花了比較長的時間而已,真沒有覺得勵志。

3樓:

能帶理論 -> PN節 -> MOSFET -> 半導體製造 -> 閘電路 ->振盪電路-> 處理器 -> 指令集 -> 機器碼 -> 作業系統 -> 編譯原理 - > 彙編 -> C

CPU <-> 南橋北橋 <-> IO匯流排/PCI匯流排 -> 記憶體,硬碟, 顯示卡 ->顯示器

4樓:

有!10年前高三畢業我也有這個疑問。今天剛好是ECE博士答辯。

想了想,這些年一共學了半導體物理,模擬電路,數位電路,VLSI,晶元實現,計算機體系結構,編譯原理,作業系統,嵌入式C,C++

要是當年直接從C++往上層學就好了。

5樓:冬瓜哥已被Jin言

我就說一下最後的哲學原理吧,就是1和0的組合,和這個世界一樣,陰陽兩極生四象,四象生八卦,產生各種基本粒子。然後你就知道了,高中物理及格的話。

6樓:阿怪

你搞清楚之後會覺得非常無聊

不過純粹以hello world 來說的話

需要搞清楚的其實是

誰擁有顯示(輸出)裝置:

顯示卡某一塊跟顯示卡說好的解析度那麼大的記憶體(記憶體)好像還要乘乙個 1677216 個bit?(不管在哪裡)

誰擁有在這塊記憶體上噴灑座位圖的權力

(就當他是 CPU 吧)

誰擁有CPU?

(一般就是 OS 中廣義的繪圖模組了)

誰算好這個上面畫著"hello world"的圖去拜託繪圖模組去跟 OS 請求把我把圖噴上去?

不一定有時候是畫好了噴

有時候是跟繪圖模組說:

「只是文字而已你看著辦吧」

(於是有了 freetype 有了各種噴字型的方案)

(因為我只有在 Linux 上幹過這麼低階的事所以我只知道 freetype,但據我所知大家都是差不多作法)

那怎麼跟繪圖模組說交代這件事呢

就是C++編譯器看到了

main 裡面有個

std::cout

編譯器說

「std」什麼的我家裡當然都有

在iostream裡面寫著呢

照它什麼的說明

我得先拿一塊記憶體

把這行字塞進去

然後跟 OS 裡頭的 libc++ 說(好像是先跟 OS 要 interrupt ?)

等您有空了幫我去拜託負責繪圖的老師把這個圖給噴到輸出裝置上

有沒有一種申請開公司留學辦護照辦簽證的感覺

就跟你說很無聊吧

打掃房子的事交給阿姨

辦簽證的事盡量交給旅行社

人生有很多其他有趣的事情

不用什麼事情都事必躬親

7樓:yqqy

這個呢首先你要學習量子力學固體物理之後是半導體物理微電子器件之後是模擬電子技術數字電子技術之後是積體電路設計加 Verilog語言之後計算機組成原理計算機體系結構之後作業系統編譯原理我感覺就差不多搞懂了

8樓:羅駿飛

看看計算機組成原理不就清楚了麼。。。參見《計算機組成-結構化方法》這本書。。。從電路到彙編都有描述。。。還要電路以下去看模電數電,要看彙編以上去看編譯原理

9樓:

把這些說清楚,都可以造機器了哦,這裡有很多任務作。

可以看看這個,Homebrew CPU Home Page,大神用74LS,自己造的機器。

10樓:

其實挺有意思的問題,看你想要多詳細的答案。這個問題本身就比較有哲學的味道。

雖然人造了計算機,但已經複雜到很少有乙個人完全理解。從硬體上按鍵產生電容變化,轉化成計算機輸入,最後到顯示卡把視訊記憶體裡的內容對映到螢幕上。

就我了解的一些細節,說是這樣的:

1 輸入。電容式鍵盤每敲擊一下,會產生電容變化,這種變化經模數轉換成數碼訊號,硬體上連到主機的乙個的介面。這個硬體上的介面對應到主機板上的一小塊訊號快取區,新的訊號會產生乙個硬體中斷上。

驅動程式會響應這個中斷,並把快取區的訊號翻譯成你敲的內容。編輯器不斷的從作業系統中讀入字元。

2編譯。這個很多編譯原理都會講到。無非是先預處理,再加個頭,並鏈結到標準庫。

3執行。作業系統會把程式讀到記憶體,並把執行位址暫存器指向這片記憶體。CPU會依次讀取這片記憶體的指令並執行。

printf這個函式會把每個字元從資料記憶體區放到暫存器裡。如果是在dos平台裡,printf應該去呼叫20號系統中斷,也就是dos的乙個子程式。這個子程式負責把字元放到視訊記憶體裡。

顯示卡的會把視訊記憶體裡的內容顯示到顯示器上。

如何有格調地輸出 Hello, World ?

在上YB console.log String.fromCharCode 64 8 String.fromCharCode 32 1 64 4 String.fromCharCode 64 4 32 8 String.fromCharCode 64 4 32 8 String.fromCharCod...

C語言 如何輸出回文 比如輸入1234,輸出4321 ?

char InPut char Str int MaxLen char End MaxLen 1 Str charCh char p for p Str p p 0 return p intReflect char Str int MaxLen for char p end Str p printf...

為什麼 C 語言的輸入輸出函式比 C 的輸入輸出流要快?

nolanzz 用流輸出的話,貌似用cerr會比cout更快一些 提醒使用std ios sync with stdio false 這個會導致流讀寫和標準讀寫不能混用,oj上讀寫會出現問題,我本地使用clang貌似沒有問題 cin cout這些不能和scnaf printf這些一起用 Isaac ...