一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

零基礎(chǔ)學(xué)ARM:MDK和GNU偽指令區(qū)別

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 18:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ARM邪獵文章,請點擊以下匯總鏈接:

《從0學(xué)arm合集》

一、MDK和GNU偽指令區(qū)別

我們在學(xué)習(xí)匯編代碼的時候經(jīng)過會看到以下兩種風(fēng)格的代碼:

gnu代碼開頭是:

.global _start
_start: @匯編入口
ldr sp,=0x41000000
.end @匯編程序結(jié)束

MDK代碼開頭是:

AREA Example,CODE,READONLY ;聲明代碼段Example
ENTRY ;程序入口
Start
MOV R0,#0
OVER
END

這兩種風(fēng)格的代碼是要使用不同的編譯器,我們之前的實例代碼都是MDK風(fēng)格的。

那么多對于我們初學(xué)者來說要學(xué)習(xí)哪種風(fēng)格呢?答案是肯定的,學(xué)習(xí)GNU風(fēng)格的匯編代碼,因為做Linux驅(qū)動開發(fā)必須掌握的linux內(nèi)核、uboot,而這兩個軟件就是GNU風(fēng)格的。

為了大家不要把過多精力浪費在暫時沒用的知識上,下面我們只講GNU風(fēng)格匯編。

二、GNU匯編書寫格式:1. 代碼行中的注釋符號:

‘@’ 整行注釋符號:‘?!?語句分離符號:
直接操作數(shù)前綴: ‘#’ 或 ‘$’

2. 全局標(biāo)號:

標(biāo)號只能由a~z,A~Z,0~9,“.”,_等(由點、字母、數(shù)字、下劃線等組成,除局部標(biāo)號外,不能以數(shù)字開頭)字符組成,標(biāo)號的后面加“:”。

段內(nèi)標(biāo)號的地址值在匯編時確定;
段外標(biāo)號的地址值在連接時確定。
3. 局部標(biāo)號:

局部標(biāo)號主要在局部范圍內(nèi)使用而且局部標(biāo)號可以重復(fù)出現(xiàn)。它由兩部組成開頭是一個0-99直接的數(shù)字局部標(biāo)號 后面加“:”

F:指示編譯器只向前搜索,代碼行數(shù)增加的方向 / 代碼的下一句
B:指示編譯器只向后搜索,代碼行數(shù)減小的方向

注意局部標(biāo)號的跳轉(zhuǎn),就近原則「舉例:」

文件位置
arch/arm/kernel/entry-armv.S

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9347

    瀏覽量

    377132
  • 偽指令
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【教程】零基礎(chǔ)!手把手教你使用STM32F4進行E22-400T22S編程通信

    通過本文帶大家零基礎(chǔ)使用STM32F407VET6單片機進行E22-400T22S模塊編程并進行簡單的通信,當(dāng)然如果學(xué)會了,也可以舉一反三應(yīng)用于E22、E220、E32所有模塊上。一STM32環(huán)境
    的頭像 發(fā)表于 07-03 19:32 ?182次閱讀
    【教程】<b class='flag-5'>零基</b>礎(chǔ)!手把手教你使用STM32F4進行E22-400T22S編程通信

    RISC-V和ARM有何區(qū)別?

    與RISC-VARM是一種精簡指令集(RISC),以該指令集為基礎(chǔ)的處理器通常被稱為ARM芯片,它在全球范圍內(nèi)得到了極為廣泛的應(yīng)用。而RISC-V也是精簡指令集,是美國加
    的頭像 發(fā)表于 06-24 11:38 ?741次閱讀
    RISC-V和<b class='flag-5'>ARM</b>有何<b class='flag-5'>區(qū)別</b>?

    一技在手,醫(yī)療無憂!零基礎(chǔ)轉(zhuǎn)行高薪醫(yī)療維修工程師

    ,剩下的就看個人能力了,對醫(yī)療器械維修感興趣但迷茫的可聯(lián)系我們,幫你解決疑難問題,帶你入門醫(yī)療維修行業(yè)! 一技在手,醫(yī)療無憂!零基礎(chǔ)轉(zhuǎn)行高薪醫(yī)療維修工程師!” “缺口40萬+,月薪過萬!搶占醫(yī)療行業(yè)
    發(fā)表于 05-15 10:22

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+讀《零基礎(chǔ)開發(fā)AI Agent》掌握扣子平臺開發(fā)智能體方法

    收到發(fā)燒友網(wǎng)站寄來的《零基礎(chǔ)開發(fā)AI Agent》這本書已經(jīng)有好些天了,這段時間有幸拜讀了一下全書,掌握了一個開發(fā)智能體的方法。 該書充分從零基礎(chǔ)入手,先闡述了Agent是什么,它的基本概念和知識
    發(fā)表于 05-14 19:51

    【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】+ 入門篇學(xué)習(xí)

    很高興又有機會學(xué)習(xí)ai技術(shù),這次試讀的是「零基礎(chǔ)開發(fā)AI Agent」,作者葉濤、管鍇、張心雨。 大模型的普及是近三年來的一件大事,萬物皆可大模型已成為趨勢。作為大模型開發(fā)應(yīng)用中重要組成部分,提示詞
    發(fā)表于 05-02 09:26

    零基礎(chǔ)學(xué)習(xí)一階RC低通濾波器(從原理到實踐)

    *附件:零基礎(chǔ)學(xué)習(xí)一階RC低通濾波器(從原理到實踐).docx
    發(fā)表于 03-26 14:35

    零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》

    零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》是一本為普通人量身打造的AI開發(fā)指南。它不僅深入淺出地講解了Agent的概念和發(fā)展,還通過詳細的工具介紹和實戰(zhàn)案例,幫助讀者快速掌握
    發(fā)表于 03-18 12:03

    Vivado Tcl零基礎(chǔ)入門與案例實戰(zhàn)【高亞軍編著】

    Vivado Tcl零基礎(chǔ)入門與案例實戰(zhàn)-高亞軍編寫
    發(fā)表于 01-14 11:13

    零基礎(chǔ)入門PCB工程師

    各位前輩大家好,零基礎(chǔ)入門PCB工程師,有什么學(xué)習(xí)資料推薦嗎?
    發(fā)表于 11-27 16:54

    你聽說過MIPS嗎?它和ARM有何區(qū)別?

    基于MIPS指令集的君正X2000處理器。有些工程師對于MIPS不怎么了解,究竟MIPS和ARM有何區(qū)別呢?本期文對MIPS做一個簡單介紹。MIPS和ARM都屬于
    的頭像 發(fā)表于 11-23 01:05 ?772次閱讀
    你聽說過MIPS嗎?它和<b class='flag-5'>ARM</b>有何<b class='flag-5'>區(qū)別</b>?

    新唐科技率先發(fā)布免費版Arm Keil MDK,助力嵌入式開發(fā)

    2024年11月5日,新唐科技正式推出了免費版的Arm? Keil? MDK Nuvoton Edition,成為全球首家向開發(fā)者提供Keil MDK完整版本的半導(dǎo)體公司。這款專業(yè)開發(fā)工具專為
    的頭像 發(fā)表于 11-06 11:07 ?2385次閱讀

    GNU構(gòu)建裸機系統(tǒng)

    基于AT91SAM7S平臺,介紹裸機開發(fā),以閃燈為藍本,涉及匯編、鏈接、C/C++、中斷等。   無處不在的ARM處理器家族得到了GNU C/C++工具鏈的良好支持。雖然許多在線和印刷資源關(guān)注
    發(fā)表于 10-16 17:34 ?0次下載

    ARM處理器的指令集包括哪些

    ARM處理器的指令集是一個龐大而復(fù)雜的系統(tǒng),它涵蓋了多種類型的指令,用于實現(xiàn)數(shù)據(jù)處理、程序控制、內(nèi)存訪問等多種功能。
    的頭像 發(fā)表于 09-10 11:15 ?1519次閱讀

    ARM處理器和CISC處理器的區(qū)別

    ARM處理器和CISC(復(fù)雜指令集計算機)處理器在多個方面存在顯著的區(qū)別。這些區(qū)別主要體現(xiàn)在架構(gòu)原理、性能與功耗、設(shè)計目標(biāo)、應(yīng)用領(lǐng)域以及市場生態(tài)等方面。
    的頭像 發(fā)表于 09-10 11:10 ?964次閱讀

    電壓開關(guān)與電流開關(guān)的區(qū)別

    電壓開關(guān)(Zero Voltage Switch, ZVS)和電流開關(guān)(Zero Current Switch, ZCS)是電力電子技術(shù)中兩種重要的軟開關(guān)技術(shù),它們在提高系統(tǒng)效率、降低開關(guān)損耗、減少電磁干擾等方面具有顯著優(yōu)勢。以下將詳細探討這兩種技術(shù)的
    的頭像 發(fā)表于 07-25 11:18 ?5787次閱讀