- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章-Thumb-2汇编语言程序设计4H
1、AREA AREA伪操作用于定义一个代码段或数据段。 ARM程序采用分段式设计,一个源程序至少包含一个代码段。语法: AREA |段名| {, CODE|DATA}{,attr} 段名非数字开头、无标点时“|”可省略; CODE|DATA指定代码段或数据段;还有NOINIT表示数据段是未初始化的或初始化为零;其他查手册。 attr属性如:READONLY只读、READWRITE可读写、ALIGN=数字表达式(值0到31的整数,指定对齐方式,取值为2的幂,如1、2、4、8、16等字节对齐(默认4字节对齐)。 2、ALIGN 设置对齐方式 ALIGN伪操作可通过添加填充字节的方式,使当前位置满足一定的对齐方式。语法: ALIGN {expr{,offset{,pad}}} expr对齐表达式。表达式的值用于指定对齐方式,取值为2的幂,如1、2、4、8、16等字节对齐(默认4字节对齐)。 offset,偏移量也为一个数字表达式,若使用该字段,则当前位置的对齐方式为:n*expr+偏移量。 pad,用作填充的字节,无用零填充。 3、PROC/ENDP 函数起始/结束标志 函数起始/结束标志,实例: Reset_Handler PROC START MOV R0,#15 ;R0 = 15 MOV R1,#8 ; R1 =8 ADDS R0,R0,R1 ; R0 = R0 + R1 B START ENDP 第5章 Thumb-2汇编语言程序设计 在CM3上编程,既可用C/C++也可用汇编,二者各有所长,不能互相取代。使用C/C++能开发大型程序,而汇编则用于执行特种任务。 本章内容: 5.1 ARM汇编器支持的符号定义伪操作 5.2 ARM汇编器支持的数据定义伪操作 5.3 ARM汇编器支持的汇编控制伪操作 5.4 ARM汇编器支持的其他伪操作 5.5 ARM汇编器支持的伪指令 5.6 Thumb2汇编程序结构 5.5 ARM汇编器支持的伪指令 伪指令在汇编阶段被翻译成ARM、Thumb、Thumb-2指令(或指令序列)。(与伪操作区别?)。 ARM伪指令包含ADR、ADRL、LDR等。 1、ADR伪指令为小范围地址读取伪指令,语法: ADR{cond}{.W} Rd, label Rd,目标寄存器 label,基于PC或具有寄存器的表达式。 当地址值字节对齐时,取值范围为?255~255,字对齐时,取值范围为?1020~1020; 2、ADRL伪指令为中等范围地址读取伪指令,语法同上。在32位的Thumb-2指令中,地址取值范围到达?1~1MB。 伪指令 3、LDR伪指令装载一个32位的常数或一个地址到寄存器,语法: LDR{cond}{.W} RD,=[ expr | label-expr ] expr,32位常量表达式 label-expr,一个程序相关或声明为外部的表达式 ARM或32位的Thumb-2指令中该范围是?4~4KB,Thumb或16位的Thumb-2指令中该范围是0~1KB。 例:LDR R3,=0xff0;将常数0xff0读到R1中 ;相当于指令:MOV R3,#0xff0 例: LDR R2,=place ;将place标号地址读入R1,等价: LDR R2,[ pc, litpool ] ;此条为指令 … litpool DCD plac 第5章 Thumb-2汇编语言程序设计 在CM3上编程,既可用C/C++也可用汇编,二者各有所长,不能互相取代。使用C/C++能开发大型程序,而汇编则用于执行特种任务。 本章内容: 5.1 ARM汇编器支持的符号定义伪操作 5.2 ARM汇编器支持的数据定义伪操作 5.3 ARM汇编器支持的汇编控制伪操作 5.4 ARM汇编器支持的其他伪操作 5.5 ARM汇编器支持的伪指令 5.6 Thumb2汇编程序结构 5.6 Thumb2汇编程序结构 ;文件名:TEST1.S AREA |test1.s|,CODE,READONLY;声明只读代码段 DCD __Vectors DCD Reset_Handler EXPORT __Vectors EXPORT Reset_Handler __Vectors Reset_Handler PROC ; PROC/ENDP函数起始 START MOV
文档评论(0)