在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ASM要被時代淘汰了嗎

Q4MP_gh_c472c21 ? 來源:TopSemic嵌入式 ? 作者:Norman Guo ? 2021-11-16 15:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近瀏覽一個挺流行的視頻——X天學會單片機。內容確實通俗易懂,制作的比較用心。但其中的有個觀點筆者不敢茍同,就是現在 C 語言已經強大到勝任所有任務,大家沒有必要再去學習匯編語言了,直接從 C 學起就行了。

這種觀點似乎有一定道理,我甚至懷疑現在是不是真的有很多同學不再學習匯編了。特別是現在大多數廠商都提供了完備的驅動代碼的情況下,我們做項目基本上用不到寫 ASM 代碼了。

ASM 就要被時代淘汰了!可真的是這樣嗎?

下面我們結合兩個實際工程中碰到的例子談一下,掌握 ASM 語言對我們寫出穩定高效代碼的必要性。

我們看代碼,主程序翻轉 PORTA 的引腳 0,定時中斷服務程序翻轉 PORTA 的引腳 1。乍一看很難看出有什么問題。有不少同學就是這么中招兒的。這要是控制一些 LED 指示燈或蜂鳴器之類的還好,最多就是偶爾看著有點亂,或出點兒噪音。要是控制設備沒準兒就要出大問題了。

有什么問題呢?因為中斷發生時,主程序將在上一條正在執行中的語句執行完后中止運行。這里一定要注意,這里說的語句,不是一條 C 語句,而是一條 ASM 語句。我們在調試環境看一下反匯編。一條 C 語句被編譯成了多條 ASM 語句。

LDRH r1, [r5,#0x14] (1)

EORS r1,r1,r4 (2)

STRH r1,[r5,#0x14] (3)

我們看到一條 C 語句實際上編譯為 3 句 ASM,(1)把 PORTA 當前內容讀進 r1,(2)最低位通過異或取反,(3)把取反后的值輸出至 PORTA。如果中斷恰好發生在 (1)或 (2)的執行期間,那么中斷服務程序對 PORTA 引腳 1 的操作,會被主程序中語句(3)覆蓋掉。

要避免這種情況,可以在操作 IO 端口(或其它類似的操作)前禁止中斷,操作完之后再允許中斷。在一些有位帶(Bit Map)的單片機里,對單個引腳的操作可以通過位帶區操作,避免各引腳之間互相影響。

匯編語言的使用,還可以大幅度的提高代碼的效率。即使現在編譯器的效率已經挺高了,但畢竟機器還是要比人笨一點兒。

舉個例子,有不少工程里面需要用到浮點運算。如果直接調用浮點運算庫,可以輕松的完成任務。但這樣有一個限制,就是運算過程一直以最大的精度來運算,相當浪費 MCU 的時間。

我們的應用可能并不需要這么高的精度,而是需要盡快的完成運算并保留一定精度即可。在此情況下,如果我們用嵌入 ASM 做運算,可以通過減少迭代運算次數 (精度和迭代運算次數成正比)達到快速完成運算。在發動機控制等分秒必爭的領域,有時候這樣做是很有必要的。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6067

    文章

    44969

    瀏覽量

    649738
  • C語言
    +關注

    關注

    180

    文章

    7631

    瀏覽量

    141384
  • ASM
    ASM
    +關注

    關注

    1

    文章

    69

    瀏覽量

    19437

原文標題:ASM真要被掃進歷史的垃圾堆了嗎?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文讀懂 ASM1042 芯片應用技巧

    關于國科安芯 ASM1042 芯片的基礎參數與規格書細節,已有大量資料可供查閱。本文聚焦應用工程師實際開發需求,從管腳接線技巧、電路防護設計到典型場景落地,拆解這款CAN FD 收發器的實戰應用方法
    的頭像 發表于 06-27 16:28 ?159次閱讀
    一文讀懂 <b class='flag-5'>ASM</b>1042 芯片應用技巧

    所以你做出來了嗎

    所以你做出來了嗎,求
    發表于 06-16 01:43

    硅基時代的黃昏:為何SiC MOSFET全面淘汰IGBT?

    革命性替代:為何SiC MOSFET全面淘汰IGBT? —— 當效率差距跨越臨界點,IGBT被淘汰便是唯一結局 傾佳電子楊茜致力于推動國產SiC碳化硅模塊在電力電子應用中全面取代進口IGBT模塊
    的頭像 發表于 05-30 16:24 ?287次閱讀
    硅基<b class='flag-5'>時代</b>的黃昏:為何SiC MOSFET全面<b class='flag-5'>淘汰</b>IGBT?

    第一代半導體被淘汰了嗎

    在半導體產業的百年發展歷程中,“第一代半導體是否被淘汰”的爭議從未停歇。從早期的鍺晶體管到如今的硅基芯片,以硅為代表的第一代半導體材料,始終以不可替代的產業基石角色,支撐著全球95%以上的電子設備
    的頭像 發表于 05-14 17:38 ?326次閱讀
    第一代半導體被<b class='flag-5'>淘汰</b><b class='flag-5'>了嗎</b>

    Altium 365平臺有效解決電子元件淘汰管理難題

    倘若電子元件從未開啟更新換代的進程,如今您手中的智能手機或許仍在依賴電子管艱難 “運作” 。元件的淘汰是電子領域中不可或缺的一部分。盡管這一過程是漸進的,但它代表著技術的進步。然而,元件的淘汰也會給PCB設計師帶來痛點,尤其是當他們沒有使用合適的元件和
    的頭像 發表于 03-18 09:44 ?513次閱讀
    Altium 365平臺有效解決電子元件<b class='flag-5'>淘汰</b>管理難題

    高安全可靠CAN FD芯片ASM1042的技術特性與應用前景

    1.ASM1042簡介 ASM1042是國科安芯推出的一款高性能CAN FD(CAN with Flexible Data-Rate)收發器芯片,專為高可靠性場景設計。該芯片基于ISO
    的頭像 發表于 03-14 15:49 ?613次閱讀
    高安全可靠CAN FD芯片<b class='flag-5'>ASM</b>1042的技術特性與應用前景

    STM32CUBEIDE編譯報error: expected identifier or \'(\' before \'__asm\'怎么解決?

    程序內容如下 / CMSIS compiler specific defines / ifndef__ASM define ASM asm endif / CMSIS compiler
    發表于 03-07 08:16

    EE-32:語言擴展:內存存儲類型、ASM和內聯構造

    電子發燒友網站提供《EE-32:語言擴展:內存存儲類型、ASM和內聯構造.pdf》資料免費下載
    發表于 01-14 15:03 ?0次下載
    EE-32:語言擴展:內存存儲類型、<b class='flag-5'>ASM</b>和內聯構造

    數據庫數據恢復—Oracle ASM實例無法掛載的數據恢復案例

    Oracle數據庫數據恢復環境&故障: Oracle ASM磁盤組由4塊磁盤組成。Oracle ASM磁盤組掉線 ,ASM實例不能mount。 Oracle數據庫故障分析&恢復
    的頭像 發表于 10-28 11:26 ?443次閱讀
    數據庫數據恢復—Oracle <b class='flag-5'>ASM</b>實例無法掛載的數據恢復案例

    ASM推出全新PE2O8碳化硅外延機臺

    全新推出的PE2O8碳化硅外延機臺是對行業領先的ASM單晶片碳化硅外延機臺產品組合(包含適用于6英寸晶圓的 PE1O6 和適用于8英寸晶圓的 PE1O8)的進一步增強。該機臺采用獨立雙腔設計,兼容6
    發表于 10-17 14:21 ?289次閱讀
    <b class='flag-5'>ASM</b>推出全新PE2O8碳化硅外延機臺

    ASM推出全新PE2O8碳化硅外延機臺

    全新推出的PE2O8碳化硅外延機臺是對行業領先的ASM單晶片碳化硅外延機臺產品組合(包含適用于6英寸晶圓的 PE1O6 和適用于8英寸晶圓的 PE1O8)的進一步增強。該機臺采用獨立雙腔設計,兼容6
    發表于 10-17 14:11 ?538次閱讀
    <b class='flag-5'>ASM</b>推出全新PE2O8碳化硅外延機臺

    PCM5101在ASM3M項目上的問題?

    我們TI PCM5101在ASM3M項目上,生產200臺,出現了4臺關機有明顯的POP聲音,能夠測量出PCM5101的6腳和7腳有波形輸出。能否幫忙查看下問題。原理圖部分如下:
    發表于 10-09 08:11

    換電要被超快充淘汰了?

    當超快充已經可以實現「充電5分鐘,續航增加200多公里」時,就會出現一種聲音: 超快充技術發展這么快 換電馬上就要被淘汰了? —— 錯! 蔚來「可充也可換」,給你多一種選擇 最好的服務體系不應只提供
    的頭像 發表于 09-13 11:20 ?845次閱讀

    電感很燙是短路了嗎

    電子發燒友網站提供《電感很燙是短路了嗎.docx》資料免費下載
    發表于 09-04 11:31 ?0次下載

    ASM330LHH使用FIFO閾值中斷輸出時工作異常的原因?

    GPIO_Pin){ if(GPIO_Pin == IMU_INT1_Pin) {asm330lhh_fifo_read(); }}void asm
    發表于 07-22 06:06
    主站蜘蛛池模板: 婷婷香蕉 | 简单视频在线播放jdav | hs视频在线观看 | www.亚洲.com| 亚洲免费区 | 国产成人影院 | 亚洲人成a在线网站 | 2o18国产大陆天天弄 | 天堂一区二区在线观看 | 天堂在线视频网站 | 国产一级αv片免费观看 | 在线免费看污视频 | 国产一卡2卡3卡四卡精品网站 | 67pao强力打造高清免费 | 国产拍拍1000部ww | 欧美特黄三级在线观看 | 老师在办公室被躁得舒服小说 | 日本黄色录像视频 | 久久久久久久成人午夜精品福利 | 999毛片免费观看 | 美脚连裤袜老师正在播放 | 亚洲精品老司机综合影院 | 欧美性猛交xxx嘿人猛交 | 成人a级特黄毛片 | 天天操精品 | 一级做a爰片久久毛片免费看 | 国产美女主播一级成人毛片 | 男人资源在线 | 日本一本在线视频 | 国产在线精品美女观看 | 五月天狠狠操 | 国产三级在线观看 | 亚洲人成影院在线高清 | 欧美一区二区三区四区视频 | 天天干天天干 | 成年网站在线看 | 性xxxxbbbb在线| 午夜视频在线观看免费视频 | 深夜视频在线播放视频在线观看免费观看 | 久久在草 | 五月婷婷视频在线观看 |