资源描述:
《arm程序设计add1 (nxpowerlite)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、补充:ARM程序设计ARM汇编程序中每一行的通用格式为:{标号}{指令
2、指示符
3、伪指令}{;注解}。在ARM汇编语言源程序中,除了标号和注释外,指令、伪指令和指示符都必须有前导空格,而不能顶格书写。如果每一行的代码太长,可以使用字符“”将其分行书写,并允许有空行。指令助记符、指示符和寄存器名既可以用大写字母,也可以用小写字母,但不能混用。注释从“;”开始,到该行结束为止。标号代表一个地址,段内标号的地址值在汇编时确定,段外标号的地址值在链接时确定。ARM汇编程序设计AREAWord,CODE,READONLY;namethis
4、blockofcodenumEQU20;SetnumberofwordstobecopiedENTRY;markthefirstinstructiontocallstartLDRr0,=src;r0=pointertosourceblockLDRr1,=dst;r1=pointertodestinationblockMOVr2,#num;r2=numberofwordstocopywordcopyLDRr3,[r0],#4;awordfromthesourceSTRr3,[r1],#4;storeawordtothedestin
5、ationSUBSr2,r2,#1;decrementthecounterBNEwordcopy;...copymorestopMOVr0,#0x18;angel_SWIreason_ReportExceptionLDRr1,=0x20026;ADP_Stopped_ApplicationExitSWI0x123456;ARMsemihostingSWIAREABlockData,DATA,READWRITEsrcDCD1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4dstDCD0,0,0,0,0,
6、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0ENDARM汇编程序设计符号类型指示符功能符号定义指示符GBLA声明和初始化一个全局算术变量,初始值为0GBLL声明和初始化一个全局逻辑变量,初始值为{FALSE}GBLS声明和初始化一个全局字符串变量,初始值为空LCLA声明和初始化一个局部算术变量,初始值为0。局部算术变量只能在宏中进行声明。LCLL声明和初始化一个局部逻辑变量,初始值为{FALSE}。局部逻辑变量只能在宏中进行声明。LCLS声明和初始化一个局部字符串变量,初始值为空。局部字符串变量只能在宏中进行声明。
7、SETA给一个局部或全局算术变量置值SETL给一个局部或全局逻辑变量置值SETS给一个局部或全局字符串变量置值RLIST给寄存器集命名CN给一个协处理器寄存器命名CP给一个特定协处理器命名,协处理器号为0~15DN给一个双精度VFP寄存器命名SN给一个单精度VFP寄存器命名FN给一个特定的浮点寄存器命名ARM汇编程序设计数据定义指示符LTORG指示汇编器汇编当前文字池^或MAP置存储映射的起点到一个特定的地址#或FIELD描述指示符所定义的存储映射中的空间%或SPACE定义一块值为0的存储器区域=或DBC分配一个或多个字节&或D
8、CD分配一个或多个字,从4字节边界开始DCDU分配一个或多个字,但不一定从4字节边界开始DCDO分配以字边界开始的存储区域,并指定初始值为到静态基址寄存器的偏移DCFD分配给双精度浮点数一段以字边界开始的内存区域DCFDU分配给双精度浮点数一段以任意边界开始的内存区域DCFS分配给单精度浮点数一段以字边界开始的内存区域DCFSU分配给单精度浮点数一段以任意边界开始的内存区域DCI分配以字边界开始的存储区域,并指定初始值。标记此地址存储的是代码而不是数据DCQ分配给双精度浮点数一段以4字节边界开始的内存区域DCQU分配给双精度浮点
9、数一段以任意边界开始的内存区域DCW分配给一个或多个半字以半字边界开始的内存区域DCWU分配给一个或多个半字以任意边界开始的内存区域DATA标识一个标号是代码段中数据的标号,该符号后是DCB或DCDARM汇编程序设计报告指示符ASSERT对于声明错误,在第二次汇编时产生错误信息!或INFO在汇编时显示信息OPT可在源代码中设置列表选项TTL在一个列表文件每页的开始插入一个标题,每一页的标题在下一个TTL之前都有效SUBT在一个列表文件的页中设置一个子标题,每一页的子标题在下一个SUBT之前都有效ARM汇编程序设计汇编控制指示符[
10、或IF这三个符号连用,进行条件汇编
11、或ELSE]或ENDIFMACRO这二个符号连用,定义一个宏定义MENDMEXIT用来在结束前退出宏定义WHILE这二个符号连用,进行重复汇编WENDARM汇编程序设计杂项指示符ALIGN从一个字边界开始AREA指示汇编器汇编