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

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

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

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

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 18:34 ? 次閱讀

ARM邪獵文章,請點(diǎn)擊以下匯總鏈接:

《從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)格的代碼是要使用不同的編譯器,我們之前的實(shí)例代碼都是MDK風(fēng)格的。

那么多對于我們初學(xué)者來說要學(xué)習(xí)哪種風(fēng)格呢?答案是肯定的,學(xué)習(xí)GNU風(fēng)格的匯編代碼,因?yàn)樽?a href="http://ttokpm.com/v/tag/538/" target="_blank">Linux驅(qū)動開發(fā)必須掌握的linux內(nèi)核、uboot,而這兩個軟件就是GNU風(fēng)格的。

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

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

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

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

標(biāo)號只能由a~z,A~Z,0~9,“.”,_等(由點(diǎn)、字母、數(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8970

    瀏覽量

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

    關(guān)注

    0

    文章

    12

    瀏覽量

    10485
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    電壓開關(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)勢。以下將詳細(xì)探討這兩種技術(shù)的
    的頭像 發(fā)表于 07-25 11:18 ?671次閱讀

    PLC中ALT和ALTP指令區(qū)別

    在PLC(可編程邏輯控制器)編程中,ALT和ALTP是兩個重要的指令,它們各自具有獨(dú)特的功能和應(yīng)用場景。本文將從多個方面對這兩個指令進(jìn)行詳細(xì)的分析和比較,以便讀者能夠更深入地理解它們之間的區(qū)別。
    的頭像 發(fā)表于 06-17 16:42 ?1741次閱讀

    GNU make中文手冊

    電子發(fā)燒友網(wǎng)站提供《GNU make中文手冊.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 13:22 ?0次下載

    I2C boot使用ARM GCC編譯pass, 改用ARM MDK編譯報錯怎么解決?

    I2C boot 使用ARM GCC 編譯pass, 改用ARM MDK 編譯報錯如下, 怎么解決,謝謝! cannot open source input file &quot
    發(fā)表于 06-03 06:06

    FPGA與ARM的本質(zhì)區(qū)別

    FPGA(Field-Programmable Gate Array)與ARM在多個方面存在本質(zhì)區(qū)別。 首先,從它們的定義和結(jié)構(gòu)上來看,F(xiàn)PGA是一種現(xiàn)場可編程門陣列,屬于可編程器件的一種。它的內(nèi)部
    發(fā)表于 04-28 09:00

    FPGA與ARM的本質(zhì)區(qū)別是什么?

    FPGA(Field-Programmable Gate Array)與ARM在多個方面存在本質(zhì)區(qū)別。 首先,從它們的定義和結(jié)構(gòu)上來看,F(xiàn)PGA是一種現(xiàn)場可編程門陣列,屬于可編程器件的一種。它的內(nèi)部
    發(fā)表于 04-28 08:56

    零基礎(chǔ)小白適不適合學(xué)鴻蒙開發(fā)?

    ,自由流轉(zhuǎn);統(tǒng)一生態(tài),原生智能。隨著鴻蒙生態(tài)的壯大,投入鴻蒙開發(fā)的IT專業(yè)人才越來越多,對于從未接觸過此方面零基礎(chǔ)的學(xué)生而言,也是一次很不錯的職業(yè)轉(zhuǎn)向和技術(shù)提升的好機(jī)會。 什么是鴻蒙? ? 鴻蒙系統(tǒng)(HarmonyOS)是華為技
    的頭像 發(fā)表于 03-04 17:50 ?1587次閱讀
    <b class='flag-5'>零基</b>礎(chǔ)小白適不適合<b class='flag-5'>學(xué)</b>鴻蒙開發(fā)?

    接地和接是一個概念嗎?接地和接的基本目的 工作接地與保護(hù)接區(qū)別

    接地和接是一個概念嗎?接地和接的基本目的 工作接地與保護(hù)接區(qū)別 保護(hù)接地與保護(hù)接區(qū)別
    的頭像 發(fā)表于 02-04 15:45 ?682次閱讀

    arm架構(gòu)和x86架構(gòu)區(qū)別 linux是x86還是arm

    ARM架構(gòu)和x86架構(gòu)是兩種不同的計算機(jī)處理器架構(gòu),它們在體系結(jié)構(gòu)、指令集、應(yīng)用領(lǐng)域等方面有著明顯的區(qū)別。Linux操作系統(tǒng)則具有廣泛的適配性,可以運(yùn)行在各種架構(gòu)上,包括x86和ARM
    的頭像 發(fā)表于 01-30 13:46 ?1.5w次閱讀

    零基礎(chǔ)入門 Hyperlynx 仿真教程

    電子發(fā)燒友網(wǎng)站提供《零基礎(chǔ)入門 Hyperlynx 仿真教程.pdf》資料免費(fèi)下載
    發(fā)表于 12-22 10:49 ?23次下載

    什么叫接地和接?接地和接區(qū)別

    什么叫接地和接?接地和接區(qū)別 接地和接是在電力系統(tǒng)中常用的概念,它們起著保護(hù)和安全的作用。接地是將電氣設(shè)備與地面進(jìn)行連接,而接是將
    的頭像 發(fā)表于 11-20 15:13 ?3004次閱讀

    講講ARM指令集格式以及常用的ARM匯編指令

    對于搞嵌入式驅(qū)動或者操作系統(tǒng)的人來說,掌握匯編語言的使用還是比較重要的,畢竟有時候在分析定位問題的時候,多多少少都會有匯編的身影。本文主要講講ARM指令集格式以及常用的ARM匯編指令
    的頭像 發(fā)表于 11-08 12:34 ?2740次閱讀
    講講<b class='flag-5'>ARM</b><b class='flag-5'>指令</b>集格式以及常用的<b class='flag-5'>ARM</b>匯編<b class='flag-5'>指令</b>

    MCS51匯編中的DATA是偽指令嗎?具體用法是什么?

    MCS51匯編中的DATA是偽指令嗎?具體用法是什么?
    發(fā)表于 11-02 08:17