国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

完善資料讓更多小伙伴認識你,還能領(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是大范圍的讀取地址偽指令。可實際上adr是將基于PC相對偏移的地址值或基于寄存器相對地址值讀取的為指令,而ldr用于加載32為立即數(shù)或一個地址到指定的寄存器中。到這兒就會看到其中的區(qū)別了。如果在程序中想加載某個函數(shù)或者某個在聯(lián)接時候指定的地址時請使用adr,例如在lds中需要重新定位的地址。當加載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

這個取得標號 _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

    文章

    9552

    瀏覽量

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

    關(guān)注

    0

    文章

    9

    瀏覽量

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

    關(guān)注

    0

    文章

    100

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    UPS電源能當發(fā)電機用嗎?90%的人都搞錯了,一文理清區(qū)別用法

    功能、工作原理完全不同,二者既不能替代,又能協(xié)同互補。今天就從原理、差異、用法三方面,徹底講清二者的區(qū)別,幫你避開使用誤區(qū)。一、核心結(jié)論:UPS電源≠發(fā)電機,二者本質(zhì)完全不
    的頭像 發(fā)表于 01-22 09:37 ?964次閱讀
    UPS電源能當發(fā)電機用嗎?90%的人都搞錯了,一文理清<b class='flag-5'>區(qū)別</b>與<b class='flag-5'>用法</b>

    時鐘周期和指令周期的區(qū)別是什么

    時鐘周期: 是硬件的時間單位,由主頻直接決定。類似于音樂的節(jié)拍器,所有操作按此節(jié)奏同步。例如,72MHz 的 CPU 每秒完成 7200 萬次時鐘周期。 指令周期: 指令周期是軟件視角的耗時
    發(fā)表于 11-21 07:01

    ARM架構(gòu)與DSP有什么區(qū)別?哪一個更好?

    ARM架構(gòu)與DSP有什么區(qū)別?哪一個更好?
    發(fā)表于 11-19 06:14

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

    本文將為你介紹如何利用 Arm i8mm 指令,具體來說,是通過帶符號 8 位整數(shù)矩陣乘加指令 smmla,來優(yōu)化 llama.cpp 中 Q6_K 和 Q4_K 量化模型推理。
    的頭像 發(fā)表于 07-24 09:51 ?1901次閱讀
    利用<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分壓基準,采用4引腳TO-46封裝。
    的頭像 發(fā)表于 06-25 10:38 ?911次閱讀
    Analog Devices Inc. <b class='flag-5'>ADR</b>1399H-EBZ評估板特性/示意圖

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

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

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

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

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

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

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

    Analog Devices EVAL-ADR3650EBZ評估板設(shè)計用于評估電路板上包含的ADR3650。該印刷電路板 (PCB) 具有用于GNDS和VOUT引腳、無源器件以及用于更廣泛設(shè)置
    的頭像 發(fā)表于 06-14 11:33 ?924次閱讀
    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 ?1983次閱讀
    步進電機控制<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 ?2次下載

    國產(chǎn)電壓基準源對標REF34XX/ADR34XX的模擬I/O模塊替換方案

    國產(chǎn)電壓基準源對標REF34XX/ADR34XX的模擬I/O模塊替換方案
    的頭像 發(fā)表于 04-03 09:49 ?1260次閱讀
    國產(chǎn)電壓基準源對標REF34XX/<b class='flag-5'>ADR</b>34XX的模擬I/O模塊替換方案

    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

    樂得瑞LDR6282:雙C口DRP及USB PD3.0控制芯片

    樂得瑞LDR6282:雙C口DRP及USB PD3.0控制芯片
    的頭像 發(fā)表于 03-06 15:51 ?1488次閱讀