第章arm汇编语言程序设计-read

第章arm汇编语言程序设计-read

ID:14582028

大小:1011.50 KB

页数:110页

时间:2018-07-29

第章arm汇编语言程序设计-read_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《第章arm汇编语言程序设计-read》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章ARM汇编语言程序设计本章介绍如何编写ARM和thumb汇编语言程序。同时介绍ARM汇编编译器armasm的使用方法。4.1伪操作ARM汇编语言源程序中语句由指令、伪操作和宏指令组成。在ARM中伪操作称为derective,这里为保持和国内在IBMPC汇编语言中对名词翻译的一致性derective称为伪操作;同样在ARM中宏指令被称为pseudo-instructlon,这里将其称为宏指令,宏指令也是通过伪操作定义的。本节介绍伪操作和宏指令。伪操作不像机器指令那样在计算机运行期间由机器执行,它是在汇编程序肘源程序汇编期间由汇编程序处理的。宏是一段独立的程序代码。在程序中通过宏指

2、令调用该宏。当程序被汇编时,汇编程序将对每个宏调用作展开,用宏定义体取代源程序中的宏指令。本节介绍以下类型的ARM伪操作和宏指令。l符号定义(Symboldefinition伪操作。l数据定义(Datadefinition)伪操作。l汇编控制(Assemblycontrol)伪操作。l框架描述(Framedescription)伪操作。l信息报告(Reporting)伪操作。l其他(Miscellaneous)伪操作。4.1.1符号定义伪操作符号定义(Symboldefinition)伪操作用于定义ARM汇编程序中的变量,对变量进行赋值以及定义寄存器名称。包括以下伪操作。lGBLA、

3、GBLL及GBLS声明全局变量。lLCLA.LcLL及LCLS声明局部变量。lSETA.SETL及SETS给变量赋值。lRLIST为通用寄存器列表定义名称。lCN为协处理器的寄存器定义名称。lCP为协处理器定义名称。lDN及SN为VFP的寄存器定义名称。lFN为FPA的浮点寄存器定义名称。1GBLAGBLL及GBLSGBLAGBLL及GBLS伪操作用于声叫个ARM程序中的全局变量,并将其初始化。GBLA伪操作声明一个全局的算术变量,并将其初始化成0。GBLL伪操作声明一个全局的逻辑变量,并将其初始化成{FALSE}GBLS伪操作声明一个全局的串变量,并将其初始化成宅串“”。语法格式<

4、gblx>variable其中:是后面3种伪操作之一:GBLA,GBLL或者GBLS。variable是所说明的全局变量的名称。在其作用范围内必须惟一。使用说明如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。全局变量的作用范围为包含该变量的源程序。示例GBLAobjectsize;声明一个全局的算术变量objectsizeSETA0xff;向该变量赋值SPACEobjectsize;引用该变量2LCLA、LCLL及LCLSLCLA.LCLL及LCLS伪操作用于声明个ARM程序中的局部变量,并将其初始化。LCLA伪操作声明一个局部的算术

5、变量,并将其初始化成0。LCLL伪操作声明一个局部的逻辑变量,并将其初始化成{FALSE}LCLS伪操作声明一个局部的串变量,并将其初始化成空串“”语法格式variable其中,是后面3种伪操作之一:LCLA,LCLL或者LCLS。variable是所说明的局部变量的名称。在其作用范围内必须惟一。使用说明如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。局部变量的作用范围为包含该局部变量的宏代码的一个实例。示例MACRO;声明个宏$labelmessage$a;宏的原型LCLSerr;声明一个局部串变量errerrSETS"

6、errorno:";向该变量赋值$label;代码INFO0,”err”:CC::STR:Sa;使用该串堂且MEND;宏定义结束3SETA,SETL及SETSSETA,SETL及SETS伪操作用于给个ARM程序中的变量赋值。SETA伪操作给一个算术变量赋值。SETL伪操作给一个逻辑变量赋值。SETS伪操作给一个串变量赋值。语法格式variableexpr其中:是后而3种伪操作之:SETA,SETL或者SETS。variable是使用GBLA、GBLL、GBLS、LCLA、LCLL或LCLS说明的变最的名称。在其作用范围内必须惟一。expr为表达式,即赋予变量的

7、值。使用说明在向变量赋值前,必须先声明该变量。示例GBLAobjectsize;声明一个全局的算术变量objectsizeSETA0xff;向该变量赋值SPACEobjectsize;引用该变量GBLLstatusB;声明一个全局的逻辑变量statusBstatusBSETL{TRUE};向该变量赋值4RLISTRLIST为一个通用寄存器列表定义名称语法格式nameRLIST{list-of-registers}其中:name是寄存器列表的名称。{list

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

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

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