常用ARM指令集及汇編 2003年12月1日
常用 ARM 指令集及汇编 2003 年 12 月 1 日
常用▲RM指令集及汇编 ver:10.12 前言 ARM( Advanced rIsC Machines)是微处理器行业的一家知名企业,该企业设计了 大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本 低和能耗省的特点,适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移 动式应用等。 ANM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的 都是独一无二的ARM相关技术及服务,利用这种合作关系,ARM很快成为许多全球性RISC 标准的缔造者。 目前,AM内核的微处理器正在我国迅速普及和发展,许多朋友已经开始着手学习、 研究和利用这类芯片进行商品化设计,为了帮助广大朋友更快的学习和使用这种先进的 技术,广州周立功单片机发展有限公司〔htp://ww, zlgmcu,com)曾面向大众推出了 款 EasyARM试验板,本文的大部分内容来自此款试验板的配套教材一《AN微控制器基 础》,并且得到周立功正式授权。本文主要是针对ARM7TDMI(-S)内核,经本人重新排版, 制作成PDF格式,便于大家查阅和使用。 本文仅仅用于大家的学习和研究使用,由于本文的原因造成元器件的损坏、设计方 案的缺陷与失败等一切损失,概不负责。 感谢周立功老师为我们提供了丰富的资源并亲自审阅了本文,感谢单片机学习网 http://www.mcustudy.com为我们提供了交流和学习的空间,感谢我的女友对我这项 工作的支持,她自己放弃了大量的业余时间帮我录入和排版 由于时间仓促,本文难免会存在不当之处,欢迎大家来信(email:mcu8031@163.com) 或在网上(QQ:57523799)批评指正和交流,以便在今后的版本加以更正,也希望大家能 把自己在工作中的心得体会和经验拿出来,和众多的同行及爱好者交流,共同提高, 起进步 宛城布衣 2003年12月1日星期 %%嗡%嗡嗡%嗡%嗡嗡吼嗡%嗡嗡嗡吼哈嗡嗡%嗡 By宛城布衣QQ:57523799emai:mcu8031@163cm
常用 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 日星期一 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII By 宛城布衣 QQ:57523799 email: mcu8031@163.com 第 i 页
常用▲RM指令集及汇编 ver:10.12 目录 前言 目录 ARM7TDM(S)指令集及汇编 ARM处理器寻址方式 寄存器寻址 立即寻址 寄存器偏移寻址 寄存器间接寻址 基址寻址 222334 多寄存器寻址 堆栈寻址 块拷贝寻址 相对寻址 指令集介绍 ARM指令集 指令格式 第2个操作数 #f immed 8r Rm shift I.88LLLLL 条件码 ARM存储器访问指令 LDR和STR LDM和STM SWP 1479 ARM数据处理指令 数据传送指令 MOV MVN… 算术逻辑运算指令 ADD 乙7乙00 SBC 2 AND ORR BIC By宛城布衣QQ:57523799emai:mcu8031@163cm
常用 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 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII BIC...............................................................................................................23 By 宛城布衣 QQ:57523799 email: mcu8031@163.com 第 I 页
常用▲RM指令集及汇编 ver:10.12 比较指令 23 CMP MN 222 TSI TEQ 乘法指令 MUL MLA UMULL UMLAL SMULL SMLAL ARM跳转指令 ARM协处理器指令 CDP STC MCR 30 MRC ARM杂项指令 SWI MSR ARM伪指令 ADRL LDR 36 NOP Thumb指令集 Thumb指令集与ARM指令集的区别 Thumb存储器访问指令 LDR和STR PUSH和POP LDMA和 STMIA Thumb数据处理指令 45 数据传送指令 MOV 算术逻辑运算指令 By宛城布衣QQ:57523799emai:mcu8031@163cm
常用 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 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII By 宛城布衣 QQ:57523799 email: mcu8031@163.com 第 II 页
常用▲RM指令集及汇编 ver:10.12 49 SBC UL EOR BIC 5555 ASR LSL ROR 比较指令 P CMN TST Thumb跳转指令 B 45555 BX Thumb杂项指令 SWI Thumb伪指令 ADR 伪指令 符号定义伪指令 GBLA、GBLL、GBLS.. LCLA、LCLL、LCLS SETA、SETL、SETS RLIST CN DN、SN. 数据定义伪指令 LTORG 64 FIELD SPACE 666 DCD和DCDU DADO %%嗡%%%嗡%嗡%嗡嗡吼嗡%嗡嗡嗡哈嗡嗡%%嗡哈 By宛城布衣QQ:57523799emai:mcu8031@163cm 第Ⅲ页
常用 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 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII By 宛城布衣 QQ:57523799 email: mcu8031@163.com 第 III 页