91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

我給大家先舉個(gè)例子:

AREA test,CODE,READONLY

ENTRY

ldr r0,_start

adr r0,_start

ldr r0,=_start

nop

_start

nop

END

這段代碼并無(wú)實(shí)際意義,只是為了方便說(shuō)明。我們反匯編一下看看:

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í)行這個(gè)后,r0 = 0xe1a00000

adr r0, _start

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

ldr r0, =_start

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

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

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

    關(guān)注

    135

    文章

    9553

    瀏覽量

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

    關(guān)注

    0

    文章

    9

    瀏覽量

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

    關(guān)注

    0

    文章

    100

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

    本文將為你介紹如何利用 Arm i8mm 指令,具體來(lái)說(shuō),是通過(guò)帶符號(hào) 8 位整數(shù)矩陣乘加指令 smmla,來(lái)優(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

    請(qǐng)幫忙看看這個(gè)TI ADR芯片的具體型號(hào)

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

    Analog Devices Inc. ADR1399H-EBZ評(píng)估板特性/示意圖

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

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

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

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

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

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

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

    Analog Devices Inc. EVAL-ADR3650EBZ評(píng)估板數(shù)據(jù)手冊(cè)

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

    步進(jìn)電機(jī)控制指令詳解

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

    arm指令速查手冊(cè)

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

    國(guó)產(chǎn)電壓基準(zhǔn)源對(duì)標(biāo)REF34XX/ADR34XX的模擬I/O模塊替換方案

    國(guó)產(chǎn)電壓基準(zhǔn)源對(duì)標(biāo)REF34XX/ADR34XX的模擬I/O模塊替換方案
    的頭像 發(fā)表于 04-03 09:49 ?1261次閱讀
    國(guó)產(chǎn)電壓基準(zhǔn)源對(duì)標(biāo)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ù)手冊(cè),更有ADR1001的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,ADR1001真值表,ADR1001管腳等資
    發(fā)表于 03-12 18:55
    <b class='flag-5'>ADR</b>1001 adi

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

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