
我瀏覽了很多部落格和帖子,但無法準確弄清楚機器碼是如何轉換為電信號的?
任何軟體程式都會被編譯為機器碼,而機器碼只不過是大量的 1 和 0。 1表示高電壓,例如5V,0表示相對較低的電壓,例如0V或接地,什麼組件可以理解,好吧,我得到1(一),所以我需要將電壓升高到5V,對於0(零),我需要降壓到更低的電壓水平,它是如何做到的?
答案1
不存在也不可能存在這樣的元件。 1和0純粹是理論對象,沒有任何組件可以將理論對象轉換為物理效果。物理物件只能將一種物理效應轉換為另一種物理效應。 1和0只存在於人們的腦海中。
您可以在抽象層面上將電腦視為操縱 1 和 0,也可以在物理層面上將其視為操縱電壓和電流。但這是看待相同元件執行相同操作的兩種不同方式。
1 和 0 是真實的東西,可以輸入到實體設備並轉換成其他東西。
答案2
您的機器代碼根本沒有“轉換”為電信號。它是一組電信號。您在螢幕上看到的數字和字母這一事實是無關緊要的,所有這些數據只是在嚴格的規則下對非常精確排列的電信號進行的處理。
您的機器代碼由某種儲存裝置中的資料位元組、0 和 1 群組表示。在從記憶體中讀取一個位元組(只是一組電訊號)時,處理器會以特定的方式進行設置,以處理它將看到的下一批電訊號。這個過程重複了數百萬次,你會在螢幕上看到一些東西。
您遇到的問題是您將結果(在螢幕上看到圖像)誤讀為某些最終轉換階段的結果,但事實並非如此。您所看到的是一些極其複雜的設備中大量電氣狀態變化的結果。
為了直觀地了解處理器內實際發生的情況,我建議查看6502 處理器的視覺模擬
最接近「轉換」的是將資料寫入 HDD 等儲存設備,並以磁性方式儲存在碟片上。即使在那裡,它的儲存方式也更容易將其恢復為原始版本的精確電子複製品。
基本上,您在螢幕上看到的所有內容都只是快速移動的電子,您的大腦能夠「看到」圖案和圖像的事實取決於我們如何告訴這些電子移動。這些圖片是電氣操作的產物,而不是從一種到另一種的轉換。