logo资料库

常用ARM指令集及汇编(经典).pdf

第1页 / 共137页
第2页 / 共137页
第3页 / 共137页
第4页 / 共137页
第5页 / 共137页
第6页 / 共137页
第7页 / 共137页
第8页 / 共137页
资料共137页,剩余部分请下载后查看
前言
目录
ARM7TDMI(-S)指令集及汇编
ARM处理器寻址方式
寄存器寻址
立即寻址
寄存器偏移寻址
寄存器间接寻址
基址寻址
多寄存器寻址
堆栈寻址
块拷贝寻址
相对寻址
指令集介绍
ARM指令集
指令格式
第2个操作数
#immed_8r
Rm
Rm,shift
条件码
ARM存储器访问指令
LDR和STR
LDM和STM
SWP
ARM数据处理指令
数据传送指令
MOV
MVN
算术逻辑运算指令
ADD
SUB
RSB
ADC
SBC
RSC
AND
ORR
EOR
BIC
比较指令
CMP
CMN
TST
TEQ
乘法指令
MUL
MLA
UMULL
UMLAL
SMULL
SMLAL
ARM跳转指令
B
BL
BX
ARM协处理器指令
CDP
LDC
STC
MCR
MRC
ARM杂项指令
SWI
MRS
MSR
ARM伪指令
ADR
ADRL
LDR
NOP
Thumb指令集
Thumb指令集与ARM指令集的区别
Thumb存储器访问指令
LDR和STR
PUSH和POP
LDMIA和STMIA
Thumb数据处理指令
数据传送指令
MOV
MVN
NEG
算术逻辑运算指令
ADD
SUB
ADC
SBC
MUL
AND
ORR
EOR
BIC
ASR
LSL
LSR
ROR
比较指令
CMP
CMN
TST
Thumb跳转指令
B
BL
BX
Thumb杂项指令
SWI
Thumb伪指令
ADR
LDR
NOP
伪指令
符号定义伪指令
GBLA、GBLL、GBLS
LCLA、LCLL、LCLS
SETA、SETL、SETS
RLIST
CN
CP
DN、SN
FN
数据定义伪指令
LTORG
MAP
FIELD
SPACE
DCB
DCD和DCDU
DCDO
DCFD和DCFDU
DCFS和DCFSU
DCI
DCQ和DCQU
DCW和DCWU
报告伪指令
ASSERT
INFO
OPT
TTL和SUBT
汇编控制伪指令
IF、ELSE和ENDIF
MACRO和MEND
WHIL和WEND
杂项伪指令
ALIGN
AREA
CODE16和CODE32
END
ENTRY
EQU
EXPORT和GLOBAL
IMPORT和EXTERN
GET和INCLUDE
INCBIN
KEEP
NOFP
REQUIRE
PEQUIRE8和PRESERVE8
RN
ROUT
ARM伪指令
ADR
ADRL
LDR
NOP
LDFD
LDFS
Thumb伪指令
ADR
LDR
NOP
ARM汇编程序设计
文件格式
ARM汇编的一些规范
汇编语句格式
标号
基于PC的标号
基于寄存器的标号
绝对地址
局部标号
符号
常量
数字常数
字符常量
布尔常量
段定义
宏定义及其作用
子程序的调用
数据比较跳转
循环
数据块复制
栈操作
特殊寄存器定义及应用
散转功能
查表操作
长跳转
对信号量的支持
伪指令使用
一个完整的例子
外围部件控制
三级流水线介绍
C与汇编混合编程
内嵌汇编
内嵌汇编的指令用法
内嵌汇编器与armasm汇编器的差异
内嵌汇编注意事项
访问全局变量
C与汇编相互调用
寄存器的使用规则
堆栈使用规则
参数传递规则
C程序调用汇编程序
汇编程序调用C程序
ARM指令集列表
ARM存储器访问指令表列表
ARM数据处理指令列表
ARM乘法指令列表
ARM跳转指令列表
ARM协处理器指令列表
ARM杂项指令列表
ARM伪指令列表
Thumb指令集列表
Thumb存储器访问指令列表
Thumb数据处理指令列表
Thumb跳转指令及软中断指令列表
Thumb伪指令列表
汇编预定义变量及伪指令
预定义的寄存器和协处理器名
通用寄存器
程序状态寄存器
浮点数寄存器
协处理器及协处理器寄存器
内置变量列表
伪指令列表
指令条件码列表
CPSR和SPSR分配图
常用 ARM 指令集及汇编 2003 年 12 月 1 日
常用 ARM 指令集及汇编 Ver:1.0.12 前言 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,该企业设计了 大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件。技术具有性能高、成本 低和能耗省的特点,适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移 动式应用等。 ARM 将其技术授权给世界上许多著名的半导体、软件和 OEM 厂商,每个厂商得到的 都是独一无二的 ARM 相关技术及服务,利用这种合作关系,ARM 很快成为许多全球性 RISC 标准的缔造者。 目前,ARM内核的微处理器正在我国迅速普及和发展,许多朋友已经开始着手学习、 研究和利用这类芯片进行商品化设计,为了帮助广大朋友更快的学习和使用这种先进的 技术,广州周立功单片机发展有限公司(http://www.zlgmcu.com)曾面向大众推出了一 款EasyARM试验板,本文的大部分内容来自此款试验板的配套教材--《ARM微控制器基 础》,并且得到周立功正式授权。本文主要是针对ARM7TDMI(-S)内核,经本人重新排版, 制作成PDF格式,便于大家查阅和使用。 本文仅仅用于大家的学习和研究使用,由于本文的原因造成元器件的损坏、设计方 案的缺陷与失败等一切损失,概不负责。 感谢周立功老师为我们提供了丰富的资源并亲自审阅了本文,感谢单片机学习网 (http://www.mcustudy.com)为我们提供了交流和学习的空间,感谢我的女友对我这项 工作的支持,她自己放弃了大量的业余时间帮我录入和排版。 由于时间仓促,本文难免会存在不当之处,欢迎大家来信(email:mcu8031@163.com) 或在网上(QQ:57523799)批评指正和交流,以便在今后的版本加以更正,也希望大家能 把自己在工作中的心得体会和经验拿出来,和众多的同行及爱好者交流,共同提高,一 起进步。 宛城布衣 2003 年 12 月 1 日星期一 第 i 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12 目录 前言 ................................................................................................................................................................i 目录 ................................................................................................................................................................I ARM7TDMI(-S)指令集及汇编 ....................................................................................................................1 ARM 处理器寻址方式..........................................................................................................................2 寄存器寻址....................................................................................................................................2 立即寻址........................................................................................................................................2 寄存器偏移寻址............................................................................................................................2 寄存器间接寻址............................................................................................................................3 基址寻址........................................................................................................................................3 多寄存器寻址................................................................................................................................4 堆栈寻址........................................................................................................................................4 块拷贝寻址....................................................................................................................................5 相对寻址........................................................................................................................................5 指令集介绍............................................................................................................................................7 ARM 指令集..................................................................................................................................7 指令格式................................................................................................................................7 第 2 个操作数................................................................................................................7 #immed_8r ...........................................................................................................7 Rm..........................................................................................................................8 Rm,shift..................................................................................................................8 条件码............................................................................................................................9 ARM 存储器访问指令........................................................................................................ 11   LDR 和 STR ........................................................................................................ 11   LDM 和 STM.......................................................................................................14   SWP .....................................................................................................................17 ARM 数据处理指令............................................................................................................19 数据传送指令..............................................................................................................20   MOV ............................................................................................................20   MVN ............................................................................................................20 算术逻辑运算指令......................................................................................................20   ADD .............................................................................................................20   SUB..............................................................................................................21   RSB ..............................................................................................................21   ADC .............................................................................................................21   SBC ..............................................................................................................21   RSC ..............................................................................................................22   AND .............................................................................................................22   ORR..............................................................................................................22   EOR..............................................................................................................22   BIC ...............................................................................................................23 第 I 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12 比较指令......................................................................................................................23   CMP .............................................................................................................23   CMN.............................................................................................................23   TST...............................................................................................................24   TEQ..............................................................................................................24 乘法指令......................................................................................................................25   MUL.............................................................................................................25   MLA.............................................................................................................25   UMULL........................................................................................................25   UMLAL........................................................................................................26   SMULL ........................................................................................................26   SMLAL ........................................................................................................26 ARM 跳转指令....................................................................................................................27   B...........................................................................................................................27   BL.........................................................................................................................27   BX ........................................................................................................................27 ARM 协处理器指令............................................................................................................28   CDP......................................................................................................................28   LDC......................................................................................................................29   STC ......................................................................................................................29   MCR.....................................................................................................................30   MRC.....................................................................................................................30 ARM 杂项指令....................................................................................................................31   SWI ......................................................................................................................31   MRS .....................................................................................................................32   MSR .....................................................................................................................33 ARM 伪指令........................................................................................................................34   ADR .....................................................................................................................35   ADRL...................................................................................................................35   LDR......................................................................................................................36   NOP......................................................................................................................37 Thumb 指令集 .............................................................................................................................39 Thumb 指令集与 ARM 指令集的区别 ..............................................................................39 Thumb 存储器访问指令 .....................................................................................................40   LDR 和 STR ........................................................................................................41   PUSH 和 POP ......................................................................................................43   LDMIA 和 STMIA ..............................................................................................43 Thumb 数据处理指令 .........................................................................................................45 数据传送指令..............................................................................................................46   MOV ............................................................................................................46   MVN ............................................................................................................46   NEG..............................................................................................................47 算术逻辑运算指令......................................................................................................47   ADD .............................................................................................................47 第 II 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12   SUB..............................................................................................................48   ADC .............................................................................................................49   SBC ..............................................................................................................49   MUL.............................................................................................................50   AND .............................................................................................................50   ORR..............................................................................................................50   EOR..............................................................................................................51   BIC ...............................................................................................................51   ASR..............................................................................................................51   LSL...............................................................................................................52   LSR ..............................................................................................................52   ROR..............................................................................................................53 比较指令......................................................................................................................53   CMP .............................................................................................................53   CMN.............................................................................................................54   TST...............................................................................................................54 Thumb 跳转指令 .........................................................................................................55   B ...................................................................................................................55   BL.................................................................................................................55   BX ................................................................................................................55 Thumb 杂项指令 .........................................................................................................56   SWI ..............................................................................................................56 Thumb 伪指令 .............................................................................................................57   ADR .............................................................................................................57   LDR..............................................................................................................57   NOP..............................................................................................................58 伪指令..................................................................................................................................................59 符号定义伪指令..........................................................................................................................59   GBLA、GBLL、GBLS ..............................................................................................59   LCLA、LCLL、LCLS................................................................................................60   SETA、SETL、SETS .................................................................................................61   RLIST...........................................................................................................................61   CN ................................................................................................................................62   CP.................................................................................................................................62   DN、SN.......................................................................................................................62   FN.................................................................................................................................63 数据定义伪指令..........................................................................................................................63   LTORG.........................................................................................................................64   MAP.............................................................................................................................64   FIELD ..........................................................................................................................65   SPACE..........................................................................................................................66   DCB .............................................................................................................................66   DCD 和 DCDU............................................................................................................67   DCDO ..........................................................................................................................67 第 III 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12   DCFD 和 DCFDU........................................................................................................68   DCFS 和 DCFSU.........................................................................................................68   DCI...............................................................................................................................69   DCQ 和 DCQU............................................................................................................69   DCW 和 DCWU ..........................................................................................................70 报告伪指令..................................................................................................................................70   ASSERT .......................................................................................................................70   INFO ............................................................................................................................71   OPT ..............................................................................................................................71   TTL 和 SUBT ..............................................................................................................72 汇编控制伪指令..........................................................................................................................73   IF、ELSE 和 ENDIF...................................................................................................73   MACRO 和 MEND .....................................................................................................74   WHIL 和 WEND .........................................................................................................75 杂项伪指令..................................................................................................................................76   ALIGN .........................................................................................................................77   AREA...........................................................................................................................78   CODE16 和 CODE32..................................................................................................79   END .............................................................................................................................80   ENTRY.........................................................................................................................80   EQU .............................................................................................................................81   EXPORT 和 GLOBAL ................................................................................................81   IMPORT 和 EXTERN .................................................................................................82   GET 和 INCLUDE ......................................................................................................83   INCBIN........................................................................................................................83   KEEP............................................................................................................................83   NOFP ...........................................................................................................................84   REQUIRE ....................................................................................................................84   PEQUIRE8 和 PRESERVE8 .......................................................................................84   RN ................................................................................................................................84   ROUT...........................................................................................................................85 ARM 伪指令................................................................................................................................86   ADR .............................................................................................................................86   ADRL...........................................................................................................................86   LDR..............................................................................................................................86   NOP..............................................................................................................................86   LDFD ...........................................................................................................................86   LDFS............................................................................................................................87 Thumb 伪指令 .............................................................................................................................87   ADR .............................................................................................................................87   LDR..............................................................................................................................87   NOP..............................................................................................................................88 ARM 汇编程序设计............................................................................................................................88 文件格式......................................................................................................................................88 第 IV 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12 ARM 汇编的一些规范................................................................................................................88 汇编语句格式......................................................................................................................88 标号......................................................................................................................................89   基于 PC 的标号...................................................................................................89   基于寄存器的标号..............................................................................................90   绝对地址..............................................................................................................90 局部标号..............................................................................................................................90 符号......................................................................................................................................91 常量......................................................................................................................................91   数字常数..............................................................................................................91   字符常量..............................................................................................................92   布尔常量..............................................................................................................92 段定义..................................................................................................................................92 宏定义及其作用..................................................................................................................93 子程序的调用..............................................................................................................................94 数据比较跳转..............................................................................................................................95 循环..............................................................................................................................................95 数据块复制..................................................................................................................................95 栈操作..........................................................................................................................................96 特殊寄存器定义及应用..............................................................................................................96 散转功能......................................................................................................................................97 查表操作......................................................................................................................................97 长跳转..........................................................................................................................................97 对信号量的支持..........................................................................................................................98 伪指令使用..................................................................................................................................98 一个完整的例子..........................................................................................................................98 外围部件控制..............................................................................................................................99 三级流水线介绍..........................................................................................................................99 C 与汇编混合编程............................................................................................................................100 内嵌汇编....................................................................................................................................100 内嵌汇编的指令用法........................................................................................................103 内嵌汇编器与 armasm 汇编器的差异 .............................................................................104 内嵌汇编注意事项............................................................................................................104 访问全局变量............................................................................................................................106 C 与汇编相互调用 ....................................................................................................................107 寄存器的使用规则............................................................................................................108 堆栈使用规则....................................................................................................................108 参数传递规则....................................................................................................................109 C 程序调用汇编程序 ........................................................................................................ 110 汇编程序调用 C 程序 ....................................................................................................... 111 ARM 指令集列表.............................................................................................................................. 113 ARM 存储器访问指令表列表.................................................................................................. 113 ARM 数据处理指令列表.......................................................................................................... 114 ARM 乘法指令列表.................................................................................................................. 115 第 V 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
常用 ARM 指令集及汇编 Ver:1.0.12 ARM 跳转指令列表.................................................................................................................. 116 ARM 协处理器指令列表.......................................................................................................... 117 ARM 杂项指令列表.................................................................................................................. 118 ARM 伪指令列表...................................................................................................................... 119 Thumb 指令集列表 ...........................................................................................................................120 Thumb 存储器访问指令列表 ...................................................................................................120 Thumb 数据处理指令列表 .......................................................................................................121 Thumb 跳转指令及软中断指令列表 .......................................................................................122 Thumb 伪指令列表 ...................................................................................................................123 汇编预定义变量及伪指令................................................................................................................124 预定义的寄存器和协处理器名................................................................................................124 通用寄存器........................................................................................................................124 程序状态寄存器................................................................................................................124 浮点数寄存器....................................................................................................................124 协处理器及协处理器寄存器............................................................................................125 内置变量列表............................................................................................................................125 伪指令列表................................................................................................................................126 指令条件码列表........................................................................................................................128 CPSR 和 SPSR 分配图 .............................................................................................................................129 第 VI 页 By 宛城布衣 QQ:57523799 email: mcu8031@163.com
分享到:
收藏