- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8_ARM汇编语言程序傻蔫计 习题5
第5章 ARM指令集和汇编语言程序;嵌入式系统开发中汇编语言设计的意义;5.1 ARM汇编语言程序格式;预定义寄存器名及内部变量名;ARM公司ADS预定义的寄存器名一览表;ARM公司ADS预定义的寄存器名一览表(续);ARM汇编语言程序的部分内部变量名清单 ;ARM汇编语言程序的语句格式;ARM汇编语言程序中的符号;(一)符号命名和书写规则;符号命名和书写规则(续);(二)常量;字符常量;$$在汇编语句中的使用举例;逻辑值常量;(三)表达式;字符串表达式;ARM汇编语言中的字符串操作符 ;指令格式说明:
LEN X ;返回X字符串长度
STR M ;将数字M转换成一个字符串
X RIGHT N;返回X字符串右边长度为N 的子串
X LEFT N;返回X字符串左边长度为N的 子串
CHR M ; 返回数字M表示的单个字符
X CC Y ;返回字符串X和Y连接的字符串
;数字表达式;逻辑表达式;(四)地址标号;三种类型标号;PC相关标号;DCB,DCD指令格式:
X DCB EXP1,{EXP2}……
如定义一个字节为单位的标号
XSTR DCB “HELLO WORLD!”,0
DCB 0x32,0x34,0x35
X DCD EXP1,{EXP2}……
定义一个字为单位的标号
LDR PC, RESETADDR
……
RESETADDR DCD RESET
……
RESET;寄存器相关标号;绝对地址;(五)段内标号和段外标号;程序相对寻址和寄存器相对寻址;(六)局部标号;局部标号(续1);局部标号(续2);ARM汇编语言程序编写规范 ;ARM汇编语言程序编写规范(续);汇编语句规则举例;5.1.4 ARM汇编语言指示符;AREA指示符用于定义一个代码段或者数据段。
语法格式
AREA sectionname{,attr}{,attr}....
其中:
sectionname为所定义的代码段或者数据段的名称。如果该名称是以数字开头的,则该名称必须用“|”括起来,如|1_datasec|。还有一些代码段具有约定的名称,如|.text|表示C语言编译器产生的代码段或者是与C语言库相关的代码段。
Attr是该代码段(或者程序段)的属性。
在AREA指示符中,各属性间用逗号隔开。;AREA的属性;AREA的属性(续);AREA指示符举例;(二) ENTRY指示符;(三) CODE16和CODE32指示符;CODE16/CODE32举例; (四)EQU指示符;EQU(续);(五)ROUT指示符;ROUT(续);(六) END指示符;(七) ALIGN指示符;ALIGN(续1);(八)DCB指示符;(九)MAP指示符;(十)FIELD指示符;(十一)SPACE指示符;;AAPCS;AAPCS 和ATPCS规范要点;ATPCS;寄存器的使用规则;寄存器的使用规则(续);堆栈使用规则;参数传递规则;子程序结果返回规则;(一)条件执行举例;条件执行举例(续);(二)32位地址送入一个寄存器中;32位地址送入一个寄存器中(续);(三)从IRQ和FIQ异常处理程序返回;从IRQ和FIQ异常处理程序返回(2);从IRQ和FIQ异常处理程序返回(3);(四) 循环结构;(五) 调用ARM汇编语言子程序;调用汇编子程序举例;(六)高效率程序分支;(七) 数据块复制示范程序;数据块复制示范程序(1);数据块复制示范程序(2);数据块复制示范程序(3);数据块复制示范程序(4);课后练习
1、请指出以下程序中的错误
2、将以面的C分支程序改为功能相同的汇编程序
;5.3 ARM汇编、C和C++混合编程;5.3.1 内嵌汇编;内嵌汇编的指令用法;ARM内嵌汇编程序的操作数;ARM内嵌汇编程序的物理寄存器;其他内嵌汇编程序的编写注意点;内嵌汇编程序中的SWI和BL指令;内嵌汇编代码举例字符串复制(1);内嵌汇编代码举例字符串复制(2);5.3.2 C/C++程序与ARM汇编语言程序的相互调用 ;C/C++程序调用ARM汇编程序要点;例1 C程序调用ARM汇编子程序;C程序调用ARM汇编子程序(续);例2 ARM汇编程序调用C子程序;例2 ARM汇编程序调用C子程序(续);例2 ARM汇编调用C子程序(续2);例2 ARM汇编调用C子程序(续3);例3 ARM汇编程序调用 C++子程序;例3 ARM汇编调用 C++子程序(续);例3 ARM汇编调用 C++子程序(续2);例3 ARM汇编调用 C++子程序(续3);例3 ARM汇编调用 C++子程序(续4);例3 ARM汇编调用 C++子程序(续5);例3 ARM汇编程序调用C++子程序的半主机方式运行结果输出截图;例4 C语言程序调用 C++子程序
文档评论(0)