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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

垃圾,还用汇编写单片机程序?

發布時間:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 垃圾,还用汇编写单片机程序? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

01?


前言

大家好,我是張巧龍,上次寫了 一篇關于C語言的文章:居然還有大學在大一上C語言課?

有同學留言:

突然想起來,單片機和匯編確實也挺有意思。

寫單片機程序到底用匯編還是C,也是一直存在的爭議。

還是先擺出觀點:

如果你只是想用單片機玩玩,做一些簡單DIY應用,那么C語言足夠,但是如果你想在走入嵌入式技術行業,精進原理,那么,用心學學古老但經典的匯編是肯定不會錯的!??/* 請注意加粗字眼*/

02?


匯編能完成C語言完成不了的功能

作為最基本的編程語言之一,匯編語言雖然應用的范圍不算很廣,但重要性卻勿庸置疑,因為它能夠完成許多其它語言所無法完成的功能。

Linux 內核,雖然絕大部分代碼是用? C ?語言編寫的,但仍然不可避免地在某些關鍵地方使用了匯編代碼,其中主要是在 Linux ?的啟動部分。

由于這部分代碼與硬件的關系非常密切,即使是 C語言也會有些力不從心,而匯編語言則能夠很好的揚長避短,最大限度地發揮硬件的性能。

舉例:

Bootloader、啟動代碼都是用匯編寫的。

如果想從事嵌入式技術的同學,Linux下做開發肯定是逃不掉的。

在Linux下的Bootloader種類比較多,都是開放源代碼的,現在比較流行用u-boot,

什么是Bootloader?

簡單的說,BootLoader就是在操作系統運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設備,以便為最終調用操作系統做好準備。

Bootloader的啟動過程又分為兩個階段stage1和stage2。

stage1全部由匯編編寫,它的主要工作是初始化硬件設備、為加載Bootlodader的stage2準備RAM空間、拷貝Bootloader的stage2到RAM空間、設置好堆棧段為stager2的C語言環境做準備。

由于每種嵌入式設備的硬件都不盡相同,所以肯定會存在需要修改Bootloader的,也就是Bootloader移植。

如果不懂匯編,咋移植?

03?


幫助我們更加透徹理解底層

我們在學習編程的時候,其實就是在學高級語言,也就是那些為人類設計的計算機語言。

機器語言是純粹的二進制數據表示的語言,是電腦可以真正識別的語言。

匯編語言和高級語言經過編譯連接最終都會變成機器語言才能被CPU識別和運行。
匯編語言離機器更近,高級語言離人更近。

所以,計算機不理解高級語言,必須通過編譯器轉成二進制代碼,才能運行。學會高級語言,并不等于理解計算機實際的運行步驟。

計算機真正能夠理解的是低級語言,它專門用來控制硬件。匯編語言就是低級語言,直接描述/控制 CPU 的運行。如果你想了解 CPU 到底干了些什么,以及代碼的運行步驟,就一定要學習匯編語言。

比如大家學編程的過程中,是否有這種疑問:

指針究竟是怎么運作的?

定義變量時變量的名字和變量值是不是存在相同的地址?

有些場合為什么要定義靜態變量?

想要了解上述的幾個問題,必須了解匯編,這就是匯編的魅力,幫助我們更加了解底層,了解你所寫的代碼。

04?


如何入門學習匯編

1. 清華大學王爽老師的《匯編語言》,現在已經出到第四版了,

2. 小甲魚【匯編入門】《零基礎入門學習匯編語言》

3.?《計算機組成原理》電子科技大學的慕課

也可以看看《計算機組成原理》這本書。

05?


最后

所以,匯編真的沒用嗎?學校教的都過時了?

綜上均為個人觀點,優點歡迎大家繼續補充!

整理了一些學習資料,掃碼加微信備注【匯編】,即可獲取。

-END-

我是張巧龍,一名教電子的大學老師,歡迎關注!

總結

以上是生活随笔為你收集整理的垃圾,还用汇编写单片机程序?的全部內容,希望文章能夠幫你解決所遇到的問題。

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