- 1、本文档共91页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常用ARMv4指令集及汇编
常用ARM v4指令集及汇编前言零零散散用了大概一周的时间,在《常用ARM指令集及汇编》(2003年12月1日)的基础上,大致学习了一遍ARM指令集和汇编,看的过程当中更正了一些错误的地方,并结合其它资料适当添加了一些内容,也做了一些删减,现分享出来,希望能帮助到需要的人。文中必然还有一些错误还有待改进,有些地方还需要解释的更加详细,本人精力有限,希望有心的读者,订正并增加注释,最好也分享出来,以方便大家对ARM指令的深入理解。作为刚入行的新手,不谦虚的推荐几本书:《ARM体系结构与编程-杜春雷》,《嵌入式系统体系结构、编程与设计-Raj Kamal著,贾建斌译》,《嵌入式系统:采用公开源代码和StrongARM_XScale处理器-毛德操》。这几本书到底好不好,看个人需求和喜好吧,仁者见仁智者见智。最后,感谢《常用ARM指令集及汇编》的原作者和其它资料的作者让我有机会学习我不熟悉的东西,谢谢。learllp2015-11-09目录常用ARM v4指令集及汇编I前言II目录IIIARM v4指令集及汇编1一、ARM处理器寻址方式1寄存器寻址1立即寻址1寄存器偏移寻址2寄存器间接寻址2基址寻址3多寄存器寻址3堆栈寻址3块拷贝寻址4相对寻址4二、指令集介绍5ARM指令集5指令格式5基本格式5第2个操作数51.#immed_8r常数表达式52.Rm 寄存器方式63.Rm,shift寄存器移位方式6条件码7ARM 存储器访问指令8◆LDR和STR8◆LDM和STM11◆SWP14ARM 数据处理指令15数据传送指令15算术逻辑运算指令16比较指令18乘法指令19ARM 跳转指令21ARM 协处理器指令22ARM 杂项指令24ARM 伪指令26Thumb 指令集29Thumb 指令集与 ARM 指令集的区别29跳转指令29数据处理指令29单寄存器加载和存储指令29批量寄存器加载和存储指令30Thumb 存储器访问指令30伪指令31符号定义伪指令32数据定义伪指令34报告伪指令39汇编控制伪指令41杂项伪指令43◆AREA45◆CODE16 和 CODE3246◆END46◆ENTRY46◆EQU47◆EXPORT 和 GLOBAL47◆IMPORT 和 EXTERN47◆GET 和 INCLUDE48◆INCBIN48◆KEEP49◆NOFP49◆REQUIRE49◆PEQUIRE8 和 PRESERVE849◆RN49◆ROUT50ARM 伪指令50◆ADR50◆ADRL50◆LDR51◆NOP51◆LDFD51◆LDFS51三、ARM汇编程序设计51文件格式51ARM 汇编的一些规范52汇编语句格式52标号52基于PC 的标号53基于寄存器的标号53绝对地址53局部标号53符号54常量54数字常数54字符常量54布尔常量55段定义55宏定义及其作用55子程序的调用56数据比较跳转57循环57数据块复制57栈操作58特殊寄存器定义及应用58散转功能58查表操作58长跳转59对信号量的支持59伪指令使用59一个完整的例子59外围部件控制60四、C与汇编混合编程60内嵌汇编60内嵌汇编的指令用法62内嵌汇编器与 armasm 汇编器的差异63内嵌汇编注意事项63访问全局变量65C与汇编相互调用65寄存器的使用规则66堆栈使用规则66参数传递规则66C程序调用汇编程序67调用汇编的C函数:67汇编程序调用C程序68五、ARM 指令集列表69ARM存储器访问指令表列表69ARM数据处理指令列表70ARM乘法指令列表71ARM跳转指令列表72ARM协处理器指令列表73ARM杂项指令列表74ARM伪指令列表75六、Thumb 指令集列表120Thumb存储器访问指令列表120Thumb数据处理指令列表121Thumb跳转指令及软中断指令列表122Thumb伪指令列表123七、汇编预定义变量及伪指令124预定义的寄存器和协处理器名124通用寄存器124程序状态寄存器124浮点数寄存器124协处理器及协处理器寄存器125八、内置变量列表125九、伪指令列表126十、指令条件码列表128十一、CPSR和SPSR分配图129ARM v4指令集及汇编ARM 处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单,具有 32 位 ARM 指令集和 16 位 Thumb 指令集。ARM 指令集效率高,但是代码密度低,而 Thumb 指令集具有更好的代码密度,却仍然保持 ARM 的大多数性能上的优势,它是 ARM 指令集的子集,主要用于编译器设计。所有 ARM 指令都是可以有条件执行的,而 Thumb 指令仅有一条指令具备条件执行功能。ARM 程序和 Thumb 程序可相互调用,相互之间的状态切换开销几乎为零。一、ARM处理器寻址方式寻
文档评论(0)