ARM汇编学习---如何编写ARM汇编程序

发布于:2024-07-17 编辑:匿名 来源:网络

1.前言  1.看一个程序:  AREATigerJohn,CODE,READONLY;声明代码段  CODE32;将其声明为32位ARM指令  ENTRY;声明程序条目   STARTMOVR0, #0  MOV R1 ,#1  ADD R1, R1,R0  BSTART  END  2。

使用 ”;”在 ARM 汇编器中进行注释。

  二。

汇编语言程序格式   一个完整的ARM汇编由两部分组成:声明和实际代码段。

  1。

声明:程序之前必须声明  1>应该声明什么  l声明代码段:  使用AREA指令定义段,并解释所定义段的相关属性  (描述段的名称和段的属性)   l 声明 ARM 指令:    使用 CODE32 或 CODE16 声明程序是 32 位 ARM 指令或 16 位 Thumb 指令。

  l声明程序入口:使用ENTRY指令来标识程序的入口点。

  2>这三句话缺一不可。

  3>程序完成后,使用END指令宣告程序结束。

每个汇编段必须有一个END指令来指示代码段的结束。

  2。

段  1> 在ARM 汇编语言程序中,代码以程序段为单位进行组织。

段是具有特定名称的相对独立的指令或数据序列。

  2> 段的分类  ?代码段:代码段的内容是执行代码  ?数据段:数据段存放代码运行时所需要的数据。

  注:一个汇编器至少有一个代码段。

如果程序较长,可以分为多个代码段和数据段。

多个段在程序编译和链接时最终形成一个可执行的映像文件。

  3>该段具有以下属性  ?READONLY  ?READWRITE  三。

汇编语言语句格式   [LABEL]OPERATION[OPERAND][;COMMENT]   标签字段操作助记符字段操作数字段注释字段  1.标签域(LABLE)  1> 标签域用于表示指令、变量、过程名称、数据地址和常量的地址。

  2> 标签是您可以自己命名的标识符。

语句标签可以是大小写字母混合,通常以字母开头,由字母、数字、下划线等组成。

  3>语句标签不能与寄存器名、指令助记符、伪指令同名- 指令(操作)助记符,或变量名。

  4>语句标签必须写在行首,不留空格。

  2. 操作助记符字段(OPERATION)  1> 操作助记符字段可以是指令、伪操作、宏指令或伪指令的助记符。

  2>ARM 汇编器区分大小写。

在汇编语言编程中,每条指令的助记符可以全部大写,也可以全部小写,但不允许在一条指令中混合使用大小写。

  3>所有指令不能写在行首。

指令前面必须有一个空格,然后再写指令。

  4>指令助记符与后面的操作数或操作寄存器之间必须有空格,且中间不能使用逗号。

  3。

操作数域(OPERAND)  操作数域代表运算的对象。

操作数可以是常量、变量、标签、寄存器名称或表达式。

不同的对象必须用逗号“,”分隔。

  四。

ARM指令集格式  操作码{}{S},{,}  1。

中的项目是必需的,{} 中的项目是可选的。

  2.opcode代表指令助记符。

  cond:表示执行条件。

  S:表示是否影响CPSR寄存器的值。

  Rd:目标寄存器。

  Rn:代表第一个操作数的寄存器。

  operand2:代表第二个操作数。

  3。

“operand2”的形式如下:   1>#immed_8r:常量表达式  eg:MOVR0,#1  ADDR0,R1,#0X0F  2>Rm:寄存器形式。

  即寄存器模式下,操作数为寄存器的值。

  eg:MOVPC,R0  ADDR1,R1,R2  3>Rm,shift:寄存器移位模式。

   当Rm值不变时,使用寄存器的移位结果作为操作数。

  ?ASR #n:表示算术右移n位。

  ?LSR#n:表示逻辑右移n位。

  ?ROR #n:表示右移n位。

ARM汇编学习---如何编写ARM汇编程序

  ?RRX#n:循环右移n位并扩展。

  ?LSL#n:逻辑左移 n 位。

  3。

使用条件代码“cond”可以实现高效的逻辑运算,提高代码的效率。

  ?所有ARM指令都可以有条件地执行。

  ?Thumb指令只有B(跳转)指令,具有条件执行功能。

  注:如果执行时没有指示条件码,则默认为无条件(AL)执行。

  5。

汇编程序中常用的符号   在汇编语言编程中,经常使用各种符号来表示变量、常量和地址  ?符号由大小写字母、数字和下划线组成。

  ?符号区分大小写。

具有相同名称的大写和小写符号将被编译器视为两个不同的符号。

  ?符号在其作用域内必须是唯一的,即在其作用域内不能存在同名的符号。

  ?自定义符号名称不能与系统保留字相同。

  符号名称不应与指令或指示名称相同。

  1。

程序中的变量:   1>ARM汇编器支持的变量包括数值变量、逻辑变量和字符串变量   2>在ARM汇编器编程中,可以使用GBLA、GBLL、GBLS伪定义声明全局变量,使用LCLA、LCLL和LCLS来声明局部变量,并可以使用SETA、SETL和SETS来初始化它们。

  2。

程序中的常量  1>ARM汇编器支持的常量包括数字常量、逻辑常量和字符串常量。

  3。

程序中的变量替换   1> 程序中的变量可以通过替换操作变为常量。

ARM汇编学习---如何编写ARM汇编程序

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 极客工场:参观成都车展时,我很难选择

    极客工场:参观成都车展时,我很难选择

    说到新能源,我们很可能会想到销量最高的两家车企特斯拉和比亚迪,或者是理想中的“牛奶”爸爸的汽车”、可以更换电池的蔚来,以及正在北京、上海、广州测试城市NOA的小鹏。 但每次去商场一楼,还是有不认识的品牌。

    06-18

  • 中信银行深圳分行定制授信方案,助力专精特新“小巨人”企业发展

    中信银行深圳分行定制授信方案,助力专精特新“小巨人”企业发展

    中信银行深圳分行定制信贷计划,助力特色行业“小巨人”企业发展定制信贷计划。 专精专精的“小巨人”企业,是专精专精的中小企业的佼佼者。 是专注细分市场、创新能力强、市场占有率高、掌握关键核心技术、质量效益优良的先锋企业。 近年来,工信部大力构建优质企业梯度培育

    06-17

  • 创新工场李开复:未来十年中国经济产业升级将以TOB创业模式为主

    创新工场李开复:未来十年中国经济产业升级将以TOB创业模式为主

    “未来十年中国经济增长的核心动力来自科技驱动的B端效率” 12月28日,创新工场董事长与CEO李开复在创新工场举办的分享会上分享了今年的总结以及对未来趋势的看法。 今年的COVID-19疫情给各行各业带来了严重影响,但在李开复看来,在中国独特的经济环境下,COVID-19疫情掀起了

    06-18

  • 一家美国公司申请对立讯精密发起337调查

    一家美国公司申请对立讯精密发起337调查

    《人民日报》中国网2020年1月26日星期二上午10点,国务院新闻办公室召开工业和信息化发展新闻发布会2018年,澎湃新闻:2019年我国芯片产业遭遇多重危机,目前芯片产业短缺问题似乎没有缓解的迹象。 工信部如何看待当前芯片产能不足的情况?是否会影响我国产业链、供应链安全?

    06-06

  • 女性投资人的“花瓶困境”

    女性投资人的“花瓶困境”

    “你穿得要端庄,不要显得太年轻,否则工程出身的创始人会以为你不懂,把你当花瓶。 如果没用,只能谎报你的年龄。 ” “让公司给你更高的外在头衔和VP,也无法弥补这些大佬们的蔑视。 ” “主动提出问题,如果前几个问题还不能压制住这些技术性的创始人,那就别再让他把你当

    06-18

  • 泛生子基因科技获超4亿元C轮融资,专注精准肿瘤医疗

    泛生子基因科技获超4亿元C轮融资,专注精准肿瘤医疗

    据投资界1月4日消息,北京泛生子基因科技有限公司已完成超4亿元融资在C轮融资中。 本轮融资由中国金康瑞领投,元兴资本、深商产业基金等机构跟投。   据了解,本轮募集资金将用于技术研发、产品线拓展、市场教育、大数据积累等,重点推动液体活检技术在肿瘤诊断和治疗领域

    06-18

  • PRICAI2016年论文选-基于隐式回复的群聊主题检测

    PRICAI2016年论文选-基于隐式回复的群聊主题检测

    本周三,意大利中部山区发生了 6.2 级地震。 死亡人数有所增加。 几乎与此同时,缅甸第二大城市曼德勒附近发生地震。 发生6.8级地震。 两地救援工作仍在进行中,但伤亡人数仍在增加。 震后废墟结构极不稳定,里面的救援人员面临重重危险。 核化工设施震后救援更是充满致命危

    06-18

  • 新闻 -新中利与张家港母基金共同成立20亿基金

    新闻 -新中利与张家港母基金共同成立20亿基金

    投资社区(微信ID:pedaily)5月23日消息,据悉,在新中利长三角高端装备智能制造基金签约仪式上,通过新众利与张家港母基金前期良好合作,双方达成协议,发起一支专注于高端装备和智能制造领域的基金。 基金总规模20亿元,首期规模6亿元。 早在今年5月,创始人与新中利资本集

    06-18

  • 东鹏控股上市 红杉资本获得退出

    东鹏控股上市 红杉资本获得退出

    东鹏控股上市,红杉资本退出。 2019年11月29日,东鹏控股有限公司(简称“东鹏控股”或“东鹏”)在香港主板上市,股票代码6。 东鹏控股有限公司主要是从事品牌设计、开发、生产、营销和销售多种瓷砖产品和卫浴产品。 东鹏控股已在美国、英国、韩国、西班牙等多个国家和地区注

    06-17

  • 媲美AF3!阿里云合作伙伴BIO Geometry发布新一代抗体设计生成式AI大模型 GeoFlow

    媲美AF3!阿里云合作伙伴BIO Geometry发布新一代抗体设计生成式AI大模型 GeoFlow

    近日,Google DeepMind、Isomorphic Labs等团队开发的AlphaFold 3在Nature发表,引起业界广泛关注。 与上一代方法相比,AlphaFold 3将预测范围扩大到几乎所有生命分子及其相互作用,这是生成式AI在生命科学领域的又一重要里程碑。 其模型最大的创新之一是利用Big Fire的生成

    06-18

  • 专注精准医疗,“鼎景生物”完成亿元级别D1轮融资

    专注精准医疗,“鼎景生物”完成亿元级别D1轮融资

    据投资界(ID:pedaily)6月2日消息,浙江绍兴鼎景生物医药科技有限公司鼎景生物(以下简称“鼎景生物”)完成1亿元D1轮融资。 本轮投资由国科联创(绍兴柯桥)创业投资合伙企业(有限合伙)领投,宁波创达富能企业管理中心(有限合伙)及其联合体、三亚悬崖周湾创业投资有限

    06-18

  • “全来电”完成千万轮融资,打造全场景共享户外电力平台

    “全来电”完成千万轮融资,打造全场景共享户外电力平台

    据投资界(ID:pedaily)9月3日消息,据36氪报道,近日,北京全来电科技全来电股份有限公司(以下简称“全来电”)宣布完成千万级A轮融资。 创始人陈卫表示,本轮融资资金将主要用于新产品开发等方面。 全来电成立于今年2月,由北京博电新力电气有限公司孵化,是一家致力于户

    06-18