計算機編譯時,內部硬體是如何工作的?

時間 2021-05-06 05:32:12

1樓:Interlock

mov原始碼可以是ascii,mov原始碼編譯過之後的mov指令叫機器碼,並不是ascii碼啊編譯器就是,按照事先設定好的規則,把原始碼變成另一種編碼(比如機器碼)的軟體。

一共就那麼幾種指令,不需要那麼多位。64位CPU一次只能處理64bit,每一位都很寶貴啊

2樓:Crane

硬體並不知道軟體是什麼功能,硬體眼中只有機器語言。

經典的工作方式是,CPU從記憶體讀取指令,根據指令做計算,就是加減乘除這些運算,或者是讀取或儲存資料,可以從記憶體也可以從磁碟,甚至是網路。不管是哪種資料,對硬體來說在數碼訊號層就是二進位制資料,在硬體層就是電氣訊號,高低電平或者開關,就像物理實驗課上用示波器能觀察到的那種。

從這個角度看,是不是挺無聊的呢!

3樓:交流電尼斯

首先為啥ascii是010101,01不是二進位制或者電平高低嗎,和ascii有啥關係。

其次,最簡單的解釋計算機內部就是乙個狀態機控制的數位電路,你學懂狀態機和數位電路就明白了。這些都是大學開一兩節課講的東西,不可能在知乎給你乙個回答講明白的。

4樓:駿馬金龍

程式=指令+資料。雖然指令和資料都是010101,但是什麼時候讀指令以及讀哪個位址的指令(在特定的暫存器裡儲存著位址)都是明確的

有可能通過觀察計算機硬體獲取內部程式演算法嗎?

第二夢 感覺可以,畢竟演算法通過程式來實現,程式是靠晶元的運算來實現,晶元的運算能力是靠裡面的暫存器類似的東西來實現,就是高低電平來實現,總而言之,高階程式最終不就變成機器語言101100010000,這樣的電平高低,可以觀察出來呀,只是估計沒人看的懂要實現什麼演算法吧。 黑盒環境,一般是很難觀察出...

計算機內部 128是怎麼運算的?

川平馬一 128考慮為無符號整型資料是可以用8位二進位制表示的。在帶符號的整型資料裡,他的最高位只是符號位。剩下7位才是資料位,所以128無法使用8位二進位制數表達,存在溢位。 32位處理器,字長是32位,可以單指令計算32位和32位的加減法。如果遇到溢位,暫存器會有溢位標誌位被設定,此處可以寫程式...

計算機內部是怎麼進行無符號的減法的

學無所成 cpu 是不會區分unsigned和 signed的。c語言中的有符號和無符號是語言邏輯設計層面上的概念,因為最終還是要經過編譯器編譯成cpu能夠識別的二進位制指令。這裡最關鍵的就在於編譯器該怎麼做?你要進行無符號數的減法運算,首先無符號數該怎麼表示?編譯器通常是採用補碼的方式。那如和進行...