ARM嵌入式系统教程教学课件作者张石第4章节课件

ARM嵌入式系统教程教学课件作者张石第4章节课件

ID:40234697

大小:516.00 KB

页数:84页

时间:2019-07-27

ARM嵌入式系统教程教学课件作者张石第4章节课件_第1页
ARM嵌入式系统教程教学课件作者张石第4章节课件_第2页
ARM嵌入式系统教程教学课件作者张石第4章节课件_第3页
ARM嵌入式系统教程教学课件作者张石第4章节课件_第4页
ARM嵌入式系统教程教学课件作者张石第4章节课件_第5页
资源描述:

《ARM嵌入式系统教程教学课件作者张石第4章节课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM嵌入式系统 第4章ARM汇编程序设计ARM程序设计基础伪操作(derective)伪指令(Pseudo-instruction)ARM汇编语言语句格式ARM汇编语言的程序格式相关的程序示例伪操作符号定义伪操作数据定义伪操作汇编控制伪操作其他伪操作符号定义伪操作定义全局变量:GBLA、GBLL和GBLS定义局部变量:LCLA、LCLL和LCLS变量赋值:SETA、SETL、SETS通用寄存器列表定义名称:RLISTGBLA、GBLL和GBLSGBLA、GBLL和GBLS语法格式:GBLA(GBLL或GB

2、LS)全局变量名GBLAobjectsize;全局的数字变量objectsize,为0ObjectsizeSETA0xff;将该变量赋值为0xffSPACEobjectsize;引用该变量GBLLstatusB;全局的逻辑变量statusB,为{False}statusBSETL{TRUE};将该变量赋值为真全局:作用范围为包含该变量的源程序LCLA、LCLL和LCLSLCLA、LCLL和LCLS语法格式:LCLA(LCLL或LCLS)局部变量名MACRO;声明一个宏$labelmessage$a;宏的原型

3、LCLSerr;声明一个局部变量err,为空串errSETS“errorno:”;向该变量赋值$label;代码INFO0,err:CC::STR:$a;使用该串变量MEND;宏定义结束局部:作用范围为包含该局部变量的宏代码的一个实例SETA、SETL、SETSSETA、SETL和SETS语法格式:变量名SETA(SETL或SETS)表达式在向变量赋值前,必须先声明该变量RLISTRLIST语法格式:名称RLIST{寄存器列表}ContextRLIST{r0-r6,r8,r10-r12,r15};将寄存器列

4、表名称定义为Context,可在ARM指令LDM/STM中通过该名称访问寄存器列表。排列顺序无关数据定义伪操作DCBDCW(DCWU)DCD(DCDU)DCFD(DCFDU)DCFS(DCFSU)SPACEMAPFIELDDCB语法格式:{标号}DCB表达式表达式取值范围:-128~255的数字或字符串。DCB:“=”NullstringDCB“Nullstring”,0;构造一个以0结尾的字符串DCW(或DCWU)语法格式:{标号}DCW(或DCWU)表达式DCW:半字对齐DCWU:不严格半字对齐。表达式

5、取值范围:-32768~65535data1DCW-128,num1+8;num1必须是已经定义过的DCD(或DCDU)语法格式:{标号}DCD(或DCDU)表达式DCD:“&”DCD:字对齐DCDU:不严格字对齐。data1DCD1,5,20;其值为1,5,20data2DCDmemaddr+4;分配一个字单元,其值为程序中标号memaddr加4个字节DCFD(或DCFDU)语法格式:{标号}DCFD(或DCFDU)表达式每个双精度的浮点数占据两个字单元。DCFD:字对齐DCFDU:不严格字对齐DCFD1

6、E308,-4E-100DCFDU100000,-.1,3.1E26DCFS(或DCFSU)语法格式:{标号}DCFS(或DCFSU)表达式每个单精度的浮点数占据一个字单元。DCFS:字对齐DCFSU:不严格字对齐DCFS1E3,-4E-9DCFSU1.0,-.1,3.1E6SPACE语法格式:{标号}SPACE表达式分配一片连续的存储区域并初始化为0。其中,表达式为要分配的字节数。SPACE:“%”DatastrucSPACE280;分配连续280字节的存储单元并初始化为0MAP语法格式:MAP表达式{,

7、基址寄存器}用于定义一个结构化的内存表的首地址。MAP:“^”通常与FIELD伪指令配合使用来定义结构化的内存表。MAP0x80,R9;定义结构化内存表首地址的值为0x80+R9FILED语法格式:{标号}FIELD表达式定义一个结构化内存表中的数据域。FILED也可用“#”代替。MAP0;定义结构化内存表首地址为0constaFIELD4;consta的长度为4字节,相对位置为0constbFIELD4;constb的长度为4字节,相对位置为4xFIELD8;x的长度为8字节,相对位置为0x8yFIELD

8、8;y的长度为8字节,相对位置为0x10stringFIELD256;y的长度为256字节,相对位置为0x18MOVR9,#4096LDRR5,[R9,constb];将内存表中数据域constb读取到R5中汇编控制伪操作汇编控制(AssemblyControl)伪操作用于控制汇编程序的执行流程,常用的汇编控制伪操作包括以下几条:IF、ELSE、ENDIFWHILE、WENDMACRO、MENDMEXITIF、E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。