色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

ARM匯編語言代碼節中的文字池是什么

電子工程師 ? 來源:單片機匠人 ? 作者:蔡琰老師 ? 2021-08-13 15:14 ? 次閱讀

說到文字池,首先第一個問題:什么是文字池?文字池又叫literal pool,它的本質就是ARM匯編語言代碼節中的一塊用來存放常量數據而非可執行代碼的內存塊。

那為什么要使用文字池呢?當想要在一條指令中使用一個 4字節長度的常量數據(這個數據可能是內存地址,可能是數字常量)的時候,由于ARM指令集是定長的(ARM指令4字節或Thumb指令2字節),就無法把這個4字節的常量數據編碼在一條編譯后的指令中。此時,ARM編譯器(編譯C源程序)/匯編器(編譯匯編程序) 就會在代碼節中分配一塊內存,并把這個4字節的數據常量保存起來,之后,再使用一條指令把這個4 字節的數字常量加載到寄存器中參與運算。 在寫C程序中,文字池的分配是由編譯器在編譯時自行分配安排的,但是,在寫匯編程序時,開發者可以自己進行文字池的分配,當然如果沒有自己分配匯編器也會代勞。不管何種情況,這不影響我們來了解學習一下文字池的知識。

LDR Rd,=const 偽指令可在單個指令中構造任何 32 位數字常數。使用此偽指令可生成超出MOV和MVN指令范圍的常數。LDR 偽指令可為特定的常數生成最高效的單個指令:如果可以用單個MOV或MVN 指令構造該常數,則匯編器會生成適當的指令。如果不能用單個MOV或MVN 指令構造該常數,則匯編器會執行下列操作:將該值放入文字池中,生成一個使用程序相對地址的 LDR 指令,用于從文字池中讀取該常數。說的通俗一點,如果LDR Rd, =const能夠被轉換成MOV 或者MVN指令,則匯編器將轉換成它成為相應的指令,如果不能被轉換,則匯編器會將value存放在文字池中,并且產生一個LDR指令操作。

匯編器默認把文字池放在每一個代碼節的末尾處。代碼節的末尾的確定或者是由匯編源文件尾部的指示符END確定,或者由相鄰代碼節的起始行AREA確定。在大的代碼節中(通俗理解為這個節中的代碼量比較大),默認文字池在最后,可能與代碼節中一條或多條LDR偽指令的距離很遠,可能超出LDR偽指令操作數的尋址范圍。

當偽指令是32位時,在ARM或Thumb代碼中,必須小于4K字節,文字池常量數據的位置可以是在偽指令的前面,也可以是在偽指令的后面。當偽指令是16位Thumb指令時,必須小于1K字節,且文字池必須位于偽指令的后面。

LDR Rd, =const 偽指令需要一個文字池來存放立即數常量時,匯編器會檢查已經存在的文字池中是否有相同的常量并且檢查文字池是否在偽指令允許尋址的范圍內。如果條件滿足,匯編器引用這個滿足條件的常量,否則匯編器會嘗試把該常量值放到文字池未用的空間中。如果空間地址超出偽指令的尋址范圍,匯編器會產生一條錯誤信息。這種情況下,程序員必須得自己用指示符LTORG在代碼中設置增加一個文字池。指示符LTORG放在導致錯誤的偽指令后面,并且位于偽指令LDR的有效尋址范圍內(一般節的代碼量不是特別大的情況下,可以放于中間位置)。而且要保證設置的這個文字池,處理器執行代碼的時候不會執行到這個地址。它們應放在無條件跳轉指令的后面,或者放在子例程末尾處的返回指令的后面。

應用舉例如下:

Fun1

LDR R0, =0X12345678

ADD R1, R1, R0

BX LR ;子程序返回

LTORG ;聲明文字池,存儲0x12345678

POOL SPACE 20

好了,關于文字池,本片文章就講到這里了,大家有不明白的地方可以留言提問哦,謝謝大家。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9164

    瀏覽量

    369017
  • 編程
    +關注

    關注

    88

    文章

    3637

    瀏覽量

    93945

原文標題:一文帶你讀懂ARM文字池

文章出處:【微信號:CanaanTech,微信公眾號:嘉楠科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ARM的啟動代碼為什么要用匯編語言

    ARM的啟動代碼為什么要用匯編語言
    發表于 02-26 07:17

    【原創】一文帶你讀懂ARM文字

    作者:蔡琰老師(張飛實戰電子高級工程師)說到文字,首先第一個問題:什么是文字文字又叫li
    發表于 08-11 15:05

    ARM匯編語言與指令格式資料分享

    1、ARM匯編語言與指令格式介紹匯編語言介紹概念指的是用助記符代替操作碼,用地址符號或標簽(:#&)代替地址碼的編程語言。優缺點優點:可以直接訪問硬件目標,
    發表于 04-22 16:10

    ARM匯編語言入門

    ,我們可以在函數編寫自己的匯編代碼,而無需擔心運行程序所需的所有其他代碼。 然后,我們將使用這種方法來查看用Arm
    發表于 08-08 07:28

    匯編語言代碼分析

    匯編語言代碼分析 查看源代碼將發現它由4 4個文件組成,其中:• 兩個是匯編語言文件,它們的名字帶后綴“ . s”;• 28個是用“C”
    發表于 02-09 16:18 ?26次下載

    匯編語言自學教程

    匯編語言自學教程 匯編語言(AssemblyLanguage)是面向機器的程序設計語言。在匯編語合,用助記符(Memoni)代替操作碼,
    發表于 03-15 14:24 ?511次下載

    Linux匯編語言

    在閱讀Linux源代碼時,你可能碰到一些匯編語言片段,有些匯編語言出現在以.S為擴展名的匯編文件,在這種文件
    發表于 04-07 20:43 ?55次下載

    Assemble匯編語言設計技術

    匯編語言 設計程序,是所有程序語言的基本資源。我們不管你使用除匯編語言或指令代碼以外的程序語言編程,僅僅是編程表達、編程規則和變成環境的變化
    發表于 07-07 15:47 ?0次下載

    ARM匯編語言官方手冊(中文)

    ARM匯編語言官方手冊(中文)匯編語言ARM匯編語言官方手冊(中文)
    發表于 12-28 15:02 ?212次下載

    匯編語言

    匯編語言舉例,比如讀寄存器內容的源代碼匯編語言制作的光帶菜單及源程序、獲得操作系統版本的匯編代碼
    發表于 12-31 10:40 ?33次下載

    ARM匯編程序設計之匯編語言文件格式

    10.3.1 ARM匯編語言語句格式 ARM(Thumb)匯編語法語句格式如下所示。 {symbol}{instruction|directive|pseudo-instruction
    發表于 10-19 10:14 ?7次下載

    ARM匯編語言工具V5.1用戶指南

    這本書幫助你學習如何使用德克薩斯儀器匯編語言工具專門為ARM的32位設備設計。
    發表于 04-13 15:41 ?6次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>匯編語言</b>工具V5.1用戶指南

    嵌入式系統原理及應用教程之ARM匯編語言程序設計的詳細資料說明

    本文檔的主要內容詳細介紹的是嵌入式系統原理及應用教程之ARM匯編語言程序設計的詳細資料說明包括了:1.偽操作和偽指令 ,2.ARM匯編語言語句格式,3.
    發表于 03-20 10:26 ?11次下載
    嵌入式系統原理及應用教程之<b class='flag-5'>ARM</b><b class='flag-5'>匯編語言</b>程序設計的詳細資料說明

    ARM匯編語言官方手冊

    ARM匯編語言官方手冊
    發表于 10-10 10:44 ?30次下載

    ARM匯編語言工具

    電子發燒友網站提供《ARM匯編語言工具.pdf》資料免費下載
    發表于 11-06 09:12 ?0次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>匯編語言</b>工具
    主站蜘蛛池模板: 边摸边吃奶边做激情叫床视 | 最近的2019中文字幕国语 | 无限资源在线看影院免费观看 | 手机在线播放成人亚洲影院电影 | 岛国大片在线播放高清 | brazzers欧美最新版视频 | 女子扒开腿让男生桶爽 | 欧美精品高潮呻吟AV久久 | 免费人成网站在线观看10分钟 | 亚洲高清免费在线观看 | 野草观看免费高清视频 | 涩涩视频在线看 | 无限资源网免费看 | 歪歪漫画羞羞漫画国产 | 日日做夜夜欢狠狠免费软件 | 亚洲精品成人 | 亚洲综合久久一本伊伊区 | 中文字幕国产在线观看 | 久久99r66热这里有精品 | 2017必看无码作品 | 伊人久综合 | 中文字幕在线久热精品 | 男生互捏jiji的故事 | 免费看黄的片多多APP下载 | 国产超碰人人爱被IOS解锁 | 男女作爱在线播放免费网页版观看 | 免费看的一级毛片 | 息与子在线交尾中文字幕 | 羞羞一区二区三区四区片 | 黑人强伦姧人妻日韩那庞大的 | 午夜福利电影网站鲁片大全 | 97久久超碰中文字幕 | 亚洲熟女丰满多毛XXXXX | 伊人成色综合人网 | 狠狠色丁香婷婷久久综合五月 | 色一情一乱一伦一区二区三区 | 小玲被公扒开腿 | 久久久久国产 | 无码一区二区三区 | 亚洲 日韩 在线 国产 精品 | 女人 我狠狠疼你 |