第一百零五章OPCODE
如果出现文字缺失,格式混乱请取消转码/退出阅读模式
古希臘一個哲學家有這樣一句名言——人的知識就好比一個圓圈,圓圈裏面是已知的,圓圈外面是未知的。你知道得越多,圓圈也就越大,你不知道的也就越多。
林鴻是在一本文學類的雜誌上看到這句話的。
他對這句話的觸很深,所以印象也特別清楚。
他經常會不由自主地想起這句話,例如此時此刻。
顯示器中,一個白的小球,在顯示器上不斷地來回撞擊彈回,四周都有白的圍牆擋着。
當小球和牆面撞擊的時候,就會發生鏡面彈,並且音箱中會同時發出“咚”地一聲響。
林鴻坐在蘋果機面前,呆呆地看着顯示器,眼神的焦點卻不知道已經發散到了何處。
他從學校回來之後,腦海中就不斷浮現着許文靜問他的那個問題。
長大後,想要成為一個什麼樣的人?
這是他從來沒有想過的事情,在此之前,他最大的夢想就是想一家三口團聚,自己能夠像其他家庭一樣,過上正常的生活。
不過他從來沒有對自己的未來有過什麼展望。
像其他同學那樣,夢想成為科學家?畫家?音樂家?
亦或者像徐爺爺那樣連國家都重視的無線電專家?
他所接觸到的職業還有廠長、武術宗師、軍人、教師…
對於這些職業,他都沒有什麼太大的覺,雖然有些是自己喜歡的,但卻不能確定,是不是可以將其作為自己為之一生奮鬥的目標。
他所知道的東西,就像是一個很小的圓,周圍所能接觸到的外界實在太小,以至於無法給出足夠的信息,讓他作出正確的決定和得到滿意的答案。
林鴻並不知道,他此刻的狀態,在心理學上,實際上是一個高層次“自我意識”認識反省的過程。
他開始意識到自己的不足,自己的缺陷,然後會有意識地去採取措施彌補這些不足。
一般情況下,如果沒有人刻意引導,或者受到獨特的刺,這個過程是需要在二十多歲到三十歲的時候才能夠出現的,在那個年齡階段人的知識結構和生活經歷都有了足夠的積累,自然而然會產生這種“自我意識”認識和反省。
林鴻想了半天,始終無法得到想要的答案,於是只能暫時放棄。
“順其自然吧。”林鴻給了自己一個安,這句話是他師父經常對人説的一句話。
有些事情,勉強反倒不美,可能會造成相反的效果。
將這個心思放下,他開始繼續閲讀紅皮書。
除了顯示器固件方面的內容,其他常見的外部設備固件代碼和原理他也看得差不多了。
現在他要看的,是計算機裏面最核心的部位——中央微處理片,也即cpu。
apple_ii採用的片是mos科技出品的6502片,這是八位微處理器,在問世時,是當時效能最強的cpu。當然,在蘋果機問世時,它已經不是最強的了,實際上,剛開始做樣機的時候,設計者沃茲尼亞克使用的片並不是6502,後來之所以改為了這個型號,主要是為了考慮節約成本。
6502的價格只有其他同類產品的六分之一甚至更低,但是能方面卻相差無幾,甚至比別的公司的八位微處理器還要更快。正是由於這種無法忽視地有點,讓很多計算機或者遊戲機廠商最終選擇了它作為cpu。
apple_ii蘋果機就是使用這個片的偉大產品之一,另外一個比較著名的產品,就是任天堂的家庭遊戲機,俗稱紅白機。
中央處理器,被稱作計算機的“大腦”和“心臟”這並不是隨便叫的。因為計算機中所有的執行和計算,都必須通過cpu來完成。
所謂計算機的可編程主要是指對cpu的編程,只不過平時針對它的作,被層層封裝隔離,使用高級語言的程序員,甚至不用知道cpu的存在以及其具體運作原理,只要編寫“1+1”這樣的計算等式,然後執行編譯就會出現結果。而實際上,在那察覺不到的一瞬間,這其中經過了一個非常繁雜的過程。
首先編譯器要將程序編譯為計算機能夠理解的機器語言,然後開始將程序給cpu來控制,經過提取、解碼、執行、寫回…等一系列的動作,最終計算出結果,然後再將其顯示在顯示器中。
這個過程雖然繁雜,但是速度非常快,計算機剛剛誕生的那會兒,速度可能和用算盤計算差不多,但是到了現在,已經只是一瞬間的事情了。
小小的一塊片裏面,藴含的東西卻是非常多的。
在以前,cpu是使用繼電器之類的基本開關元器件來實現的,這些元器件不但體積龐大,而且不可靠,很容易破碎。真空管的出現逐漸代替了繼電器,直到後來晶體管的出現才是cpu技術的第一次飛躍。
集成電路將大量的晶體管都集中在一個小小的片上,大大縮小了cpu的體積,並且不容易損壞,穩定也得到了極大的提升。這個時期計算機才真正有了走向千家萬户的可能,微型計算機應運而生。
紅皮書中,對6502的介紹非常詳細,大到cpu片各個針腳的功能和作用,小到累加器、指令解碼器以及各種各樣的寄存器的詳細結構都配有詳細的圖。
這些圖,全部是手繪的,原作者正是蘋果公司的天才計算機工程師沃茲尼亞克。
連線條都有些彎曲的手繪圖形出現在計算機手冊中,這要是在今天,會給人一種非常不專業的覺,但是在紅皮書出版發行的時候,正是這些手繪圖讓全世界所有計算機愛好者和研究人員為之痴。
可以説,apple_ii完全是為了計算機愛好者而設計的,包括紅皮書,也是為這些專業人士而撰寫的,因為其設計者是伍茲尼亞克,一個純粹的技術人員。
不過蘋果公司的ceo喬布斯對此意見很大,他並不是技術人員,他也不希望使用蘋果計算機的用户僅僅侷限於專業人員和計算機愛好者。
這不是喬布斯想要的產品,所以此後蘋果公司後來陸陸續續推出了很多版本其他類型的計算機,不過卻一直無法超越apple_ii,並且由於過於保守,最終讓公司陷入了面臨倒閉的危機邊緣,直到很久以後才重新崛起——這是後話。
林鴻對這部分內容看得尤其仔細,對照着cpu裏面各部件的電路原理圖,他在腦海中模擬着整個cpu的運算程。原本他還以為自己理解起來會有一定難度,但是後來發現,他很順利地就理解了整個cpu的運作原理。
算術邏輯單元、累加器、計數器、時鐘發生器、寄存器組…
林鴻一方面驚詫於這一塊小小的片上面竟然集成了這麼多複雜的部件,另外一方面又沉在這些設計妙的電路中無法自拔。
無線電台的元器件電路和原理,都是可以看得見摸得着的,可是cpu中的這些東西,卻被封裝在這麼小的一塊片內,只能通過外部的引腳對其進行作,這不得不讓林鴻到非常震驚。
這就一個黑匣子,所有輸入輸出信號,全靠那幾針腳來實現,通過對針腳上面施加各種高低不同的電平電壓,就實現了數據的處理和運算,這種巧奪天工的設計,不得不讓人擊節讚歎!
通過巧妙的電路處理,計算機科學家們發明了一種被稱為“opcode”的機器語言,以此來對cpu進行指令控制,從而實現計算。
機器語言就是指二進制代碼語言,是最低級最原始的語言,也是計算機微處理器可以直接理解的語言。例如“0000”表示讓cpu加載程序,而“0001”則告訴它要存儲東西了。
四位數,每一位都有兩種可能,那麼則可以表示2x2x2x2總共16種不同的作。
16種作在剛開始的時候還能滿足需求,可是到了後面計算機的cpu越來越複雜,作指令也越來越多,這已經無法滿足需求了,於是便開始進行擴充,用8位或者12位二進制進行標示。
直接用二進制來編寫程序,實在是太讓人蛋疼了,滿屏幕都是密密麻麻的0和1,眼睛都能看成鬥雞眼去。
後來有猛人們便想出一個法子,將二進制轉換為十六進制進行處理,每四位二進制正好對應一個十六進制正好對應,這樣就大大簡化了對記憶以及輸入量的要求。
再到後來,大家覺得記十六進制代碼也是一件難以接受的事情,於是開始用字母單詞的縮寫來對應計算機的作指令,機器碼助記符和彙編語言便由此而誕生。
例如“mov”指令,就是英文“move”的縮寫,意思就是移動,功能也是將一個數據從一個地方移動到另外一個地方。
這個指令很有用,例如想要在顯示器上顯示字母“a”就只要將a對應的機器語言“mov”到對應的顯存位置上去,顯示器上就會將“a”顯示出來。
紅皮書在這個章節裏面,詳細介紹了6502的opcode機器碼,主板上的電路,就是對這些機器碼的一個實現。
林鴻直到此刻才算真正理解了,為什麼説計算機的世界就是0和1組成的世界。
====推薦朋友現代修真作品