没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
ARM 汇编指令详解-Laputa
ARM 汇编指令集 ........................................................................................................... 4
一. 跳转指令 .............................................................................................................. 4
1. B ............................................................................................................................ 4
2. BL ........................................................................................................................... 5
3. BLX......................................................................................................................... 5
4. BX .......................................................................................................................... 5
二. 数据处理指令 ...................................................................................................... 6
5. MOV ...................................................................................................................... 6
6. MVN ...................................................................................................................... 6
7. CMP ....................................................................................................................... 7
8. CMN ...................................................................................................................... 7
9. TST ......................................................................................................................... 8
10. TEQ................................................................................................................. 8
11. ADD ................................................................................................................ 9
12. ADC ................................................................................................................ 9
13. SUB...............................................................................................................10
14. C ...................................................................................................................10
15. R ...................................................................................................................11
16. RSC ...............................................................................................................11
17. AND ..............................................................................................................12
18. ORR ..............................................................................................................12
19. EOR ..............................................................................................................12
20. BIC ................................................................................................................13
三. 法指令与乘加指令 ...........................................................................................13
21. MUL .............................................................................................................13
22. MLA ..............................................................................................................14
23. SMULL ..........................................................................................................14
24. SMLAL ..........................................................................................................15
25. UMULL .........................................................................................................15
26. UMLAL .........................................................................................................16
四. 程序状态寄存器访问指令 ...............................................................................16
27. MRS ..............................................................................................................16
28. MSR ..............................................................................................................17
五. 加载/存储指令 ..................................................................................................18
29. LDR ...............................................................................................................18
30. LDRB.............................................................................................................19
31. LDRH ............................................................................................................19
32. STR ...............................................................................................................20
33. STRB .............................................................................................................20
34. STRH .............................................................................................................21
六. 批量数据加载/存储指令 .................................................................................21
35. LDM(或 STM).........................................................................................21
七. 数据交换指令 ....................................................................................................23
36. SWP ..............................................................................................................23
37. SWPB ...........................................................................................................23
1 / 49
ARM 汇编指令详解-Laputa
八. 移位操作指令 ....................................................................................................24
38. LSL(或 ASL) ............................................................................................24
39. LSR................................................................................................................24
40. ASR ...............................................................................................................24
41. ROR ..............................................................................................................25
42. RRX ...............................................................................................................25
九. 协处理器指令 ....................................................................................................26
43. CDP...............................................................................................................26
44. LDC ...............................................................................................................26
45. STC ...............................................................................................................26
46. MCR .............................................................................................................27
47. MRC .............................................................................................................27
十. 异常产生指令 ....................................................................................................28
48. SWI ...............................................................................................................28
49. BKPT .............................................................................................................28
ARM 汇编器所支持的伪指令 ....................................................................................28
十一. 符号定义(Symbol Definition)伪指令 ...............................................................29
50. GBLA、GBLL 和 GBLS .................................................................................29
51. LCLA、LCLL 和 LCLS ....................................................................................30
52. SETA、SETL 和 SETS ...................................................................................30
53. RLIST ............................................................................................................31
十二. 数据定义(Data Definition)伪指令..............................................................31
54. DCB ..............................................................................................................32
55. DCW(或 DCWU) ....................................................................................32
56. DCD(或 DCDU).......................................................................................32
57. DCFD(或 DCFDU) ...................................................................................33
58. DCFS(或 DCFSU) ....................................................................................33
59. DCQ(或 DCQU) .........................................................................................34
60. SPACE ...........................................................................................................34
61. MAP .............................................................................................................34
62. FILED ............................................................................................................35
十三. 汇编控制(Assembly Control)伪指令 ...............................................................35
63. IF、ELSE、ENDIF ........................................................................................35
64. WHILE、WEND ...........................................................................................36
65. MACRO、MEND .........................................................................................37
66. MEXIT...........................................................................................................38
十四. 其他常用的伪指令 ...........................................................................................38
67. AREA ............................................................................................................38
68. ALIGN ...........................................................................................................39
69. CODE16、CODE32 ......................................................................................39
4、 .............................................................................................................................40
70. END ..............................................................................................................41
71. EQU ..............................................................................................................41
2 / 49
ARM 汇编指令详解-Laputa
72. EXPORT(或 GLOBAL) .............................................................................42
73. IMPORT........................................................................................................42
74. EXTERN ........................................................................................................43
75. GET(或 INCLUDE) ..................................................................................43
76. INCBIN .........................................................................................................44
77. RN ................................................................................................................44
78. ROUT ............................................................................................................45
ARM GNU 常用汇编语言介绍 ....................................................................................45
十五. ARM GNU 常用汇编伪指令介绍 .....................................................................45
79. abort ............................................................................................................45
80. if...else...endif .............................................................................................45
81. include .........................................................................................................46
82. comm ...........................................................................................................46
83. data ..............................................................................................................46
84. equ ...............................................................................................................46
85. global ...........................................................................................................46
86. ascii ..............................................................................................................46
87. byte ..............................................................................................................46
88. short.............................................................................................................47
89. int .................................................................................................................47
90. long ..............................................................................................................47
91. word.............................................................................................................47
92. macro/endm ...............................................................................................47
93. req ................................................................................................................47
94. code .............................................................................................................47
95. ltorg .............................................................................................................47
十六. ARM GNU 专有符号 ..........................................................................................48
十七. 操作码 ................................................................................................................48
十八. 可执行生成说明................................................................................................48
3 / 49
ARM 汇编指令详解-Laputa
ARM 汇编指令集
一. 跳转指令
跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程
序流程的跳转:
Ⅰ.使用专门的跳转指令。
Ⅱ.直接向程序计数器 PC 写入跳转地址值。
通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任
意跳转,在跳转之前结合使用(MOV LR, PC)等类似指令,可以保存将来的
返回地址值,从而实现在 4GB 连续的线性地址空间的子程序调用。
ARM 指令集中的跳转指令可以完成从当前指令向前或向后的 32MB 的
地址空间的跳转,包括以下 4 条指令:
1. B
B{
条件
}
目标地址
B 指令是最简单的跳转指令。一旦遇到一个 B 指令,ARM 处理器将立即跳
转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际值是
相对当前 PC 值的一个偏移量,而不是一个绝对地址,它的值由汇编器来计
算(参考寻址方式中的相对寻址)。它是 24 位有符号数,左移两位后有符
号扩展为 32 位,表示的有效偏移为 26 位(前后 32MB 的地址空间)。
示例指令:
B Label #程序无条件跳转到标号 Label 处执行
CMP R1,#0
4 / 49
ARM 汇编指令详解-Laputa
BEQ Label #当 CPSR 寄存器中的 Z 条件码置位时,程序跳转到标号 Label
处执行
2. BL
BL{
条件
}
目标地址
BL 是另一个跳转指令,但跳转之前,会在寄存器 R14 中保存 PC 的当前内容,
因此,可以通过将 R14 的内容重新加载到 PC 中,来返回到跳转指令之后的
那个指令处执行。该指令是实现子程序调用的一个基本但常用的手段。以下
指令:
#当程序无条件跳转到标号 Label 处执行时,同时将当前的 PC 值保存到 R14
中
BL Label
3. BLX
BLX
目标地址
BLX 指令从 ARM 指令集跳转到指令中所指定的目标地址,并将处理器的工
作状态有 ARM 状态切换到 Thumb 状态,该指令同时将 PC 的当前内容保存
到寄存器 R14 中。因此,当子程序使用 Thumb 指令集,而调用者使用 ARM
指令集时,可以通过 BLX 指令实现子程序的调用和处理器工作状态的切换。
同时,子程序的返回可以通过将寄存器 R14 值复制到 PC 中来完成。
4. BX
BX{
条件
}
目标地址
BX 指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是 ARM
5 / 49
剩余48页未读,继续阅读
资源评论
panyuxiao
- 粉丝: 6
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于flask和bootstrap的实验室预约系统全部资料+详细文档.zip
- 基于Python+Flask开发的Web应用防火墙全部资料+详细文档.zip
- 基于Python3 + Flask 编写的物业信息管理系统全部资料+详细文档.zip
- 机械设计双层结构摇匀机(sw16可编辑+工程图+BOM)全套设计资料100%好用.zip
- 光伏MPPT仿真-模糊控制
- 储能的削峰填谷作用,如下图所示的削峰填谷数学模型,利用cplex求解混合整数规划可得结果
- 企业网络搭建及应用竞赛模拟答题卡-网络配置与安全管理方案
- 基于Java web高校学生综合管理系统的设计与开发全部资料+详细文档.zip
- 基于Java的大学社团管理系统,高校社团管理全部资料+详细文档.zip
- 基于jsp+javabean+servlet模式的高校学生党员信息管理系统全部资料+详细文档.zip
- 基于java的高校排课教务系统全部资料+详细文档.zip
- 基于Springboot+layui+mybatis+shiro等框架高校教务管理系统全部资料+详细文档.zip
- 基于Springboot+Vue3+MySql搭建高校社团管理系统全部资料+详细文档.zip
- 基于Springboot+Vue高校学科竞赛平台毕业源码案例设计全部资料+详细文档.zip
- 基于SpringBoot+Vue实现的高校毕业生就业服务平台全部资料+详细文档.zip
- 基于Springboot的高校学科竞赛管理系统全部资料+详细文档.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功