RealView® 编译工具
3.1 版
汇编程序指南
版权所有 © 2002-2007 ARM Limited 。 保留所有权利。
ARM DUI 00204HC
RealView 编译工具
汇编程序指南
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
版本信息
本手册进行了以下更改。
日期
发行号
A
B
C
D
E
F
G
H
2002 年 8 月
2003 年 1 月
2003 年 9 月
2004 年 1 月
2004 年 12 月
2005 年 5 月
2006 年 3 月
2007 年 3 月
所有权声明
更改历史记录
保密性
非保密
非保密
非保密
非保密
非保密
非保密
非保密
非保密
更改
1.2 版
2.0 版
RVDS v2.0 的 2.0.1 版
RVDS v2.1 的 2.1 版
RVDS v2.2 的 2.2 版
RVDS v2.2 SP1 的 2.2 版
RVDS v3.0 的 3.0 版
RVDS v3.1 的 3.1 版。
带有 ® 或 ™ 标记的词语和徽标是 ARM 公司的注册商标或商标。 此处提及的其他品牌和名称可能是
其各自所有者的商标。
除非事先得到版权所有人的书面许可,否则不得以任何形式修改或复制本文档包含的部分或全部信
息以及产品说明。
本文档描述的产品还将不断发展和完善。 ARM 公司将如实提供本文档所述产品的所有特性及其使
用方法。 但是,所有暗示或明示的担保,包括但不限于对特定用途适销性或适用性的担保,均不包括
在内。
本文档的目的仅在于帮助读者使用产品。 对由于使用本文档任何信息出现的遗漏、损坏或错误使用
产品造成的任何损失,ARM 公司概不负责。
使用 ARM 一词时,它表示“ARM 或其任何相应的子公司”。
保密状态
本文档的内容是非保密的。 根据 ARM 与 ARM 将本文档交予的参与方的协议条款,使用、复制和公
开本文档内容的权利可能会受到许可限制的制约。
产品状态
本文档的信息是开发的产品的最新信息。
网址
http://www.arm.com
ii
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
ARM DUI 00204HC
目录
RealView 编译工具
汇编程序指南
第 1 章
第 2 章
前言
简介
1.1
关于本手册 ................................................................................................... viii
反馈 ................................................................................................................ xi
关于 RealView 编译工具汇编程序 ............................................................... 1-2
编写 ARM 汇编语言
简介 ............................................................................................................. 2-2
2.1
ARM 体系结构概述 ..................................................................................... 2-3
2.2
汇编语言模块的结构 .................................................................................. 2-11
2.3
条件执行 .................................................................................................... 2-17
2.4
将常数加载到寄存器 .................................................................................. 2-25
2.5
将地址加载到寄存器中 .............................................................................. 2-33
2.6
加载和存储多个寄存器指令 ....................................................................... 2-39
2.7
使用宏 ....................................................................................................... 2-45
2.8
2.9
添加符号版本 ............................................................................................ 2-49
2.10 使用框架指令 ............................................................................................ 2-50
2.11 汇编语言变更 ............................................................................................ 2-51
ARM DUI 00204HC
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
iii
第 3 章
第 4 章
第 5 章
汇编程序参考
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
命令语法 ..................................................................................................... 3-2
源语句行格式 ............................................................................................ 3-17
预定义的寄存器和协处理器名称 ............................................................... 3-18
内置变量和常数 ........................................................................................ 3-20
符号 .......................................................................................................... 3-22
表达式、文本和运算符 .............................................................................. 3-28
诊断消息 ................................................................................................... 3-41
使用 C 预处理程序 .................................................................................... 3-43
ARM 和 Thumb 指令
指令汇总 ..................................................................................................... 4-2
4.1
Thumb 中的指令宽度选择 ........................................................................... 4-9
4.2
内存访问指令 ............................................................................................ 4-11
4.3
通用数据处理指令 ..................................................................................... 4-40
4.4
乘法指令 ................................................................................................... 4-72
4.5
饱和指令 ................................................................................................... 4-93
4.6
并行指令 ................................................................................................... 4-98
4.7
组合和分离指令 ...................................................................................... 4-106
4.8
4.9
跳转指令 ................................................................................................. 4-114
4.10 协处理器指令 .......................................................................................... 4-120
4.11 其他指令 ................................................................................................. 4-128
4.12
ThumbEE 指令 ....................................................................................... 4-144
4.13 伪指令 ..................................................................................................... 4-148
NEON 和 VFP 编程
扩展寄存器组 .............................................................................................. 5-7
5.1
条件代码 ..................................................................................................... 5-9
5.2
一般信息 ................................................................................................... 5-11
5.3
NEON 和 VFP 共享的指令 ........................................................................ 5-18
5.4
NEON 逻辑运算和比较运算 ...................................................................... 5-25
5.5
NEON 通用数据处理指令 ......................................................................... 5-33
5.6
NEON 移位指令 ........................................................................................ 5-44
5.7
NEON 通用算术指令 ................................................................................. 5-50
5.8
NEON 乘法指令 ........................................................................................ 5-63
5.9
NEON 加载 / 存储元素和结构指令 ............................................................ 5-68
5.10
NEON 和 VFP 伪指令 ............................................................................... 5-76
5.11
5.12
NEON 和 VFP 系统寄存器 ........................................................................ 5-82
5.13 清零模式 ................................................................................................... 5-86
VFP 指令 .................................................................................................. 5-88
5.14
5.15
VFP 向量模式 ........................................................................................... 5-97
第 6 章
无线 MMX 技术指令
6.1
6.2
6.3
简介 ............................................................................................................ 6-2
ARM 对无线 MMX 技术的支持 ................................................................... 6-3
无线 MMX 指令 ........................................................................................... 6-7
iv
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
ARM DUI 00204HC
第 7 章
指令参考
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
按字母顺序排列的指令表 ............................................................................ 7-2
符号定义指令 .............................................................................................. 7-4
数据定义指令 ............................................................................................ 7-17
汇编控制指令 ............................................................................................ 7-31
Frame 指令 ............................................................................................... 7-40
报告指令 .................................................................................................... 7-55
指令集和语法选择指令 .............................................................................. 7-60
其他指令 .................................................................................................... 7-62
ARM DUI 00204HC
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
v
vi
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
ARM DUI 00204HC
前言
本前言介绍 《RealView 编译工具汇编程序指南》。 它包含以下几节:
• 第viii 页的关于本手册
• 第xi 页的反馈
ARM DUI 00204HC
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
vii
前言
关于本手册
适用对象
使用本手册
本手册提供有关 RealView® 编译工具 (RVCT) 汇编程序的指导和参考信息。 这包
括 armasm、独立的汇编程序以及 C 和 C++ 编译器中的嵌入式汇编程序。 本手册
介绍汇编程序的命令行选项,可供汇编语言程序员使用的汇编语言助记符、伪指
令、宏和指令。
本手册是为所有使用 RVCT 编写应用程序的开发者编写的。 本手册假定您是一
位有经验的软件开发人员,并且熟悉 RealView 编译工具要点指南中所述的 ARM
开发工具。
本手册由以下章节组成:
第 1 章 简介
本章简要介绍了 RVCT 汇编程序和汇编语言。
第 2 章 编写 ARM 汇编语言
本章提供了可帮助您使用 ARM 汇编程序和汇编语言的指导信息。
第 3 章 汇编程序参考
本章介绍了有关 ARM 汇编程序提供的语法和结构的参考材料。
第 4 章 ARM 和 Thumb 指令
本章介绍了有关 ARM 和 Thumb 指令集的参考材料,涵盖了
Thumb-2 和以前版本的 Thumb 以及 Thumb-2EE。
第 5 章 NEON 和 VFP 编程
本章介绍了有关 ARM NEON™ 技术和 VFP 指令集的参考材料。 本
章还介绍了其他 VFP 特定的汇编语言信息。
第 6 章 无线 MMX 技术指令
本章介绍了有关 ARM 对无线 MMX™ 技术的支持的参考材料。
第 7 章 指令参考
本章介绍了有关可在 ARM 汇编程序 armasm 中使用的汇编程序指令
的参考材料。
viii
版权所有 © 2002-2007 ARM Limited。 保留所有权利。
ARM DUI 00204HC