日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 43 汇编语言和c语言的理解

發布時間:2023/12/10 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 43 汇编语言和c语言的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

也許有的同學喜歡用匯編語言來實現操作系統,覺得用匯編來寫程序似乎更簡單直接,可控性比較強,有種“一切盡在掌握”的趕腳。而用c語言實現操作系統這件事,雖然輕松很多,但似乎隱約感覺到有些慌張。因為雖然c語言相對來說更接近于人的邏輯思維,但恰恰是這種優越性,給一些好學的同學帶來了困擾,畢竟咱們是在寫底層的軟件,必須要隨心所欲地控制cpu,要時時刻刻知道cpu在干什么。而感覺上,c語言不能直接控制cpu,比如無法直接控制寄存器,這里面有太多的黑盒子,無法掌控的東西似乎有很多,不知道編譯器在后面是怎么將我的邏輯思維轉換成機器指令的。這種黑盒式的操作確實讓人覺得神秘又不放心。

不同語言應用在不同的層級,各層級有不同的思維方式,c語言運用在更高的層級上,它的一行代碼相當于多行匯編語言代碼,因此c語言的語法對于匯編語言來說類似于一種需求。匯編語言相對來說運用在較低層級上,它是為完成宏觀需求的具體步驟,在程序語言層面,匯編語言可以認為是不能再細分的最基本的原子。應用不同層級的語言,我們只要運用那個層級的思維即可。c語言和匯編語言的關系就像產品經理和開發人員那樣,產品經理在設計一款產品時,只需要提出需求,這是站在“高層”上的開發,而開發人員要將需求轉換為具體的代碼,需要在微觀上細化那些“高層”的需求,對于這款產品來說,無論是產品經理還是開發人員,他們都在自己的層級上開發。一個是以需求為粒度做開發,另一個是以代碼為粒度做開發,一個是在“高層上”思考提哪些需求,另一個是在“底層上”思考如何滿足需求。

匯編指令與機器指令幾乎是一對一的,即一名匯編代碼只對應一句具體的機器碼,不會有更多對應的選擇,所以可以認為匯編指令就是機器指令。c語言的編譯過程是先將c語言代碼轉換成匯編代碼,然后再將匯編代碼轉換成機器指令。所以用c語言寫出來的程序,最終是可以轉換成對應的一句或多句匯編指令。它們的關系就好比出租車上的乘客和司機,乘客只要告訴司機想去哪里就行了,其它的工作由司機和車共同配合完成。比如乘客說要去北京大學南門,司機根據當前的位置計算相對路徑,比如先開車直行1公里,在路口處左轉,再直行2公里后右轉彎就到達了北京大學南門。乘客要去北京大學南門的這個需求就相當于c語言代碼,這是上層需求。司機相當于編譯器,由它將客戶需求轉換成具體的實現步驟,比如轉換成踩油門直行、左轉方向盤拐彎、再踩油門直行、再右轉方向盤拐彎這四個駕駛操作,當然,司機只是發號施令,并不是司機在跑,真正把乘客帶到目的地的工作者是出租車。出租車相當于cpu,由它最終落實司機的駕駛操作,將乘客帶到目的地,司機的這些駕駛操作相當于機器指令。站在乘客的角度,它只是說了一句話,就讓汽車做了加油門、轉彎等多個微操作,這就是c和機器指令之間的關系。

不知道我這樣舉例子是否打消了您的疑慮,總之我們用c語言寫程序,一定要充分相信c編譯器的工作。也許有人曾經想過,寫操作系統已經是底層的事了,做底層的事就應該用更底層的東西來實現,必須用匯編語言或比匯編語言還要低層的東西。這種想法我非常理解,我學習之初也曾有過類似的猜想。當然,確實可以用更原始的東西來實現操作系統,但那樣也更麻煩,需要極大的耐心和良好的體格,哈哈。語言只是個工具,對機器而言,它能接受的是機器指令,只要最終交給機器的是機器指令就成了。而c語言這種高級語言是可以被編譯成機器指令的,就是我們平時編譯出來的二進制文件,它里面都是二進制的機器指令,cpu處理起來完全沒有問題。選擇哪種語言,只是實現的途徑不同,最終還是匯總到機器指令那里。就像吃飯用筷子還是用勺子一樣,飯最終還是被送到了嘴里。如果您對此還是覺得很模糊,可以想想咱們平時炒菜的過程,一般炒菜時都要放醬油吧,醬油本身就是個高級的東西,它也是被其它的一些農做物制作出來的(比如一般的醬油是用大豆制作的),咱們不也是直接拿來就用嗎,有哪位同學因不清楚醬油的制作過程而不敢用醬油啦。炒菜時加醬油和用c語言寫操作系統是同一個道理,都是以高級的東西為基礎來創建新的東西。

如果以上三段內容并沒有解開您的疑惑也不要著急,這一切都會在今后的c語言編程中理解,由量變到質變,您的問題自然就解決了。

本節內容摘自《操作系統真象還原》,請大家支持正版。

總結

以上是生活随笔為你收集整理的一步步编写操作系统 43 汇编语言和c语言的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。