chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ARM指令:adr和ldr的用法區(qū)別

如意 ? 來源:CSDN ? 作者:孫曉明 ? 2020-06-20 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

同學(xué)們在學(xué)習(xí)ARM指令時,多數(shù)都會對adr和ldr這兩個命令產(chǎn)生疑惑,那他們究竟有什么區(qū)別呢?

其實這兩個都是偽指令:adr是小范圍的地址讀取偽指令,ldr是大范圍的讀取地址偽指令??蓪嶋H上adr是將基于PC相對偏移的地址值或基于寄存器相對地址值讀取的為指令,而ldr用于加載32為立即數(shù)或一個地址到指定的寄存器中。到這兒就會看到其中的區(qū)別了。如果在程序中想加載某個函數(shù)或者某個在聯(lián)接時候指定的地址時請使用adr,例如在lds中需要重新定位的地址。當(dāng)加載32為的立即數(shù)或外部地址時請用ldr。

我給大家先舉個例子:

AREA test,CODE,READONLY

ENTRY

ldr r0,_start

adr r0,_start

ldr r0,=_start

nop

_start

nop

END

這段代碼并無實際意義,只是為了方便說明。我們反匯編一下看看:

4: ldr r0,_start

0x00000000 E59F0008 LDR R0,[PC,#0x0008]

5: adr r0,_start

0x00000004 E28F0004 ADD R0,PC,#0x00000004

6: ldr r0,=_start

0x00000008 E59F0004 LDR R0,[PC,#0x0004]

7: nop

8:

9:

10: _start

0x0000000C E1A00000 NOP

11: nop

ldr r0, _start

從內(nèi)存地址 _start 的地方把值讀入。執(zhí)行這個后,r0 = 0xe1a00000

adr r0, _start

取得 _start 的地址到 r0,但是請看反編譯的結(jié)果,它是與位置無關(guān)的。其實取得的時相對的位置。例如這段代碼在 0x00000000 運行,那么 adr r0, _start 得到 r0 = 0x00000010;

ldr r0, =_start

這個取得標(biāo)號 _start 的絕對地址。這個絕對地址是在 link 的時候確定的??瓷先ミ@只是一個指令,但是它要占用 2 個 32bit 的空間,一條是指令,另一條是 _start 的數(shù)據(jù)(因為在編譯的時候不能確定 _start 的值,而且也不能用 mov 指令來給 r0 賦一個 32bit 的常量,所以需要多出一個空間存放 _start 的真正數(shù)據(jù),在這里就是 0x0000000c)。

因此可以看出,這個是絕對的尋址,不管這段代碼在什么地方運行,它的結(jié)果都是 r0 = 0x0000000c。

聲明:本文內(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)注

    135

    文章

    9450

    瀏覽量

    385715
  • adr
    adr
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    11691
  • LDR
    LDR
    +關(guān)注

    關(guān)注

    0

    文章

    100

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    利用Arm i8mm指令優(yōu)化llama.cpp

    本文將為你介紹如何利用 Arm i8mm 指令,具體來說,是通過帶符號 8 位整數(shù)矩陣乘加指令 smmla,來優(yōu)化 llama.cpp 中 Q6_K 和 Q4_K 量化模型推理。
    的頭像 發(fā)表于 07-24 09:51 ?1335次閱讀
    利用<b class='flag-5'>Arm</b> i8mm<b class='flag-5'>指令</b>優(yōu)化llama.cpp

    請幫忙看看這個TI ADR芯片的具體型號

    圖片就是這樣,驗證過,絲印TI 26 ADR也可以用,請大家?guī)兔o出具體型號,感謝!
    發(fā)表于 07-06 23:08

    Analog Devices Inc. ADR1399H-EBZ評估板特性/示意圖

    Analog Devices Inc. ADR1399H-EBZ評估板設(shè)計用于評估ADR1399超穩(wěn)定7.05V分壓基準(zhǔn),采用4引腳TO-46封裝。
    的頭像 發(fā)表于 06-25 10:38 ?457次閱讀
    Analog Devices Inc. <b class='flag-5'>ADR</b>1399H-EBZ評估板特性/示意圖

    Analog Devices Inc. ADR1399精密分流基準(zhǔn)數(shù)據(jù)手冊

    Analog Devices Inc. ADR1399精密分流基準(zhǔn)在各種電壓、溫度和靜態(tài)電流范圍內(nèi)具有出色的溫度穩(wěn)定性。ADR1399在單片基板上結(jié)合了溫度穩(wěn)定環(huán)路和有源齊納,幾乎消除了電壓隨溫度的變化。
    的頭像 發(fā)表于 06-24 15:04 ?422次閱讀
    Analog Devices Inc. <b class='flag-5'>ADR</b>1399精密分流基準(zhǔn)數(shù)據(jù)手冊

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

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

    Analog Devices Inc. ADR3625大電流輸出電壓基準(zhǔn)數(shù)據(jù)手冊

    Analog Devices Inc. ADR3625大電流輸出電壓基準(zhǔn)是低功耗、高精度元件,最大溫度系數(shù)為3ppm/°C(B級),采用8引線MSOP封裝。ADR3625能夠提供高達(dá)70 mA電流
    的頭像 發(fā)表于 06-18 11:49 ?502次閱讀
    Analog Devices Inc. <b class='flag-5'>ADR</b>3625大電流輸出電壓基準(zhǔn)數(shù)據(jù)手冊

    Analog Devices Inc. EVAL-ADR3650EBZ評估板數(shù)據(jù)手冊

    Analog Devices EVAL-ADR3650EBZ評估板設(shè)計用于評估電路板上包含的ADR3650。該印刷電路板 (PCB) 具有用于GNDS和VOUT引腳、無源器件以及用于更廣泛設(shè)置
    的頭像 發(fā)表于 06-14 11:33 ?574次閱讀
    Analog Devices Inc. EVAL-<b class='flag-5'>ADR</b>3650EBZ評估板數(shù)據(jù)手冊

    步進電機控制指令詳解

    這些指令主要是針對用 PLC 直接聯(lián)動伺服放大器,目的是可以不借助其他擴展設(shè)備(例如1GM 模塊)來進行簡單的點位控制, 使用這些指令時最好配合三菱的伺服放大器 (如 MR-J2)。然而,我們也可以用這些指令來控制步進電機的運行
    的頭像 發(fā)表于 06-12 10:33 ?1289次閱讀
    步進電機控制<b class='flag-5'>指令</b>詳解

    arm指令速查手冊

    ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),該企業(yè)設(shè)計了大量高性能、廉價、耗能低的 RISC 處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點,適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP 和移動式應(yīng)用等。
    發(fā)表于 06-05 17:13 ?1次下載

    ADR1001 adi

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)ADR1001相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有ADR1001的引腳圖、接線圖、封裝手冊、中文資料、英文資料,ADR1001真值表,ADR1001管腳等資
    發(fā)表于 03-12 18:55
    <b class='flag-5'>ADR</b>1001 adi

    LDR6500:音頻雙C支持,數(shù)字與模擬的完美結(jié)合

    這意味著,在使用LDR6500時,用戶不僅可以享受到高品質(zhì)的音頻體驗,還能獲得穩(wěn)定的電源供應(yīng),滿足各種設(shè)備的充電需求。無論是將手機連接到支持DP的外設(shè)實現(xiàn)高效投屏,還是通過DP-to-C轉(zhuǎn)接線連接
    的頭像 發(fā)表于 12-09 08:47 ?782次閱讀
    <b class='flag-5'>LDR</b>6500:音頻雙C支持,數(shù)字與模擬的完美結(jié)合

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

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

    什么是RISC-V?以及RISC-V和ARM、X86的區(qū)別

    指令集架構(gòu),為學(xué)生和研究人員提供一個更加友好和易于理解的指令集,以便他們更好地學(xué)習(xí)和研究計算機處理器的設(shè)計和開發(fā)。 RISC-V與ARM、X86指令集架構(gòu)的
    發(fā)表于 11-16 16:14

    USB PD3.1協(xié)議芯片-LDR6020

    LDR6020是一款功能強大的USB PD3.1協(xié)議芯片,以下是對LDR6020的詳細(xì)介紹: ? ? 一、基本特性 LDR6020集成了3組6路DRP USB-C及PD通信協(xié)議處理模塊和USB2.0
    的頭像 發(fā)表于 11-10 10:23 ?1310次閱讀
    USB PD3.1協(xié)議芯片-<b class='flag-5'>LDR</b>6020

    數(shù)控車床m99指令用法

    我們將詳細(xì)介紹M99指令用法?! ∫?、M99指令的基本含義  M99指令是數(shù)控車床編程中的一個輔助功能代碼,其基本含義是“程序結(jié)束并返回到程序開始處”。在數(shù)控車床的程序中,M99
    的頭像 發(fā)表于 10-23 15:52 ?4779次閱讀