常用ARM v4指令集及汇编

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用ARM v4指令集及汇编

前言

零零散散用了大概一周的时间,在《常用ARM指令集及汇编》(2003年12月1日)的基础上,大致学习了一遍ARM指令集和汇编,看的过程当中更正了一些错误的地方,并结合其它资料适当添加了一些内容,也做了一些删减,现分享出来,希望能帮助到需要的人。

文中必然还有一些错误还有待改进,有些地方还需要解释的更加详细,本人精力有限,希望有心的读者,订正并增加注释,最好也分享出来,以方便大家对ARM指令的深入理解。

作为刚入行的新手,不谦虚的推荐几本书:《ARM体系结构与编程-杜春雷》,《嵌入式系统体系结构、编程与设计-Raj Kamal著,贾建斌译》,《嵌入式系统:采用公开源代码和StrongARM_XScale处理器-毛德操》。这几本书到底好不好,看个人需求和喜好吧,仁者见仁智者见智。

最后,感谢《常用ARM指令集及汇编》的原作者和其它资料的作者让我有机会学习我不熟悉的东西,谢谢。

learllp

2015-11-09

目录

常用ARM v4指令集及汇编.......................................................................................... I 前言 ............................................................................................................................. I I 目录 ............................................................................................................................ I II ARM v4指令集及汇编.. (1)

一、ARM处理器寻址方式 (1)

寄存器寻址 (1)

立即寻址 (1)

寄存器偏移寻址 (2)

寄存器间接寻址 (2)

基址寻址 (3)

多寄存器寻址 (3)

堆栈寻址 (3)

块拷贝寻址 (4)

相对寻址 (4)

二、指令集介绍 (5)

ARM指令集 (5)

指令格式 (5)

基本格式 (5)

第2个操作数 (5)

1.#immed_8r常数表达式 (5)

2.Rm 寄存器方式 (6)

3.Rm,shift寄存器移位方式 (6)

条件码 (7)

ARM 存储器访问指令 (8)

◆LDR和STR (8)

◆LDM和STM (11)

◆SWP (14)

ARM 数据处理指令 (15)

数据传送指令 (15)

算术逻辑运算指令 (16)

ARM 跳转指令 (21)

ARM 协处理器指令 (22)

ARM 杂项指令 (24)

ARM 伪指令 (26)

Thumb 指令集 (29)

Thumb 指令集与ARM 指令集的区别 (29)

跳转指令 (29)

数据处理指令 (29)

单寄存器加载和存储指令 (29)

批量寄存器加载和存储指令 (30)

Thumb 存储器访问指令 (30)

伪指令 (31)

符号定义伪指令 (32)

数据定义伪指令 (34)

报告伪指令 (39)

汇编控制伪指令 (41)

杂项伪指令 (43)

◆AREA (45)

◆CODE16 和CODE32 (46)

◆END (46)

◆ENTRY (46)

◆EQU (47)

◆EXPORT 和GLOBAL (47)

◆IMPORT 和EXTERN (47)

◆GET 和INCLUDE (48)

◆INCBIN (48)

◆KEEP (49)

◆NOFP (49)

◆REQUIRE (49)

◆PEQUIRE8 和PRESERVE8 (49)

◆RN (49)

◆ROUT (50)

ARM 伪指令 (50)

◆ADR (50)

◆NOP (51)

◆LDFD (51)

◆LDFS (51)

三、ARM汇编程序设计 (51)

文件格式 (51)

ARM 汇编的一些规范 (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)

相关文档
最新文档