最新更新最新专题

您的位置:首页 > ppt下载 > PPT课件 > 仪器设备PPT > arm整套介绍ppt课件

arm整套介绍ppt课件下载

素材大小:
2.50 MB
素材授权:
免费下载
素材格式:
.ppt
素材上传:
ppt
上传时间:
2018-03-16
素材编号:
183491
素材类别:
仪器设备PPT

素材预览

arm整套介绍ppt课件

这是一个关于arm整套介绍ppt课件,包括了ARM7TDMI(-S)指令系统,ARM处理器寻址方式,ARM指令系统概述,ARM汇编语言程序设计,ARM-Thumb交互工作等内容。第3章 ARM7TDMI(-S)指令寻址方式 3.1 ARM7TDMI(-S)指令系统简介 3.1 ARM7TDMI(-S)指令系统 ARM指令集与Thumb指令集的关系 指令格式 ARM指令集——指令格式 指令格式 ARM指令集——第2个操作数 3.2 ARM处理器寻址方式寻址方式分类 3.2 ARM处理器寻址方式寻址方式分类——立即寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器间接寻址 3.2 ARM处理器寻址方式寻址方式分类——基址寻址 3.2 ARM处理器寻址方式寻址方式分类——基址寻址 3.2 ARM处理器寻址方式寻址方式分类——相对寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址,欢迎点击下载arm整套介绍ppt课件。

arm整套介绍ppt课件是由红软PPT免费下载网推荐的一款仪器设备PPT类型的PowerPoint.

第3章 ARM7TDMI(-S)指令寻址方式 3.1 ARM7TDMI(-S)指令系统简介 3.1 ARM7TDMI(-S)指令系统 ARM指令集与Thumb指令集的关系 指令格式 ARM指令集——指令格式 指令格式 ARM指令集——第2个操作数 3.2 ARM处理器寻址方式寻址方式分类 3.2 ARM处理器寻址方式寻址方式分类——立即寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器间接寻址 3.2 ARM处理器寻址方式寻址方式分类——基址寻址 3.2 ARM处理器寻址方式寻址方式分类——基址寻址 3.2 ARM处理器寻址方式寻址方式分类——相对寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 ARM处理器寻址方式寻址方式分类——寄存器移位寻址 3.2 寻址方式移位寻址 3.2 ARM处理器寻址方式寻址方式分类——堆栈寻址 3.2 ARM处理器寻址方式寻址方式分类——堆栈寻址 3.2 ARM处理器寻址方式寻址方式分类——堆栈寻址 3.2 ARM处理器寻址方式寻址方式分类——堆栈寻址 3.2 ARM处理器寻址方式寻址方式分类——堆栈寻址 3.2 ARM处理器寻址方式寻址方式分类——多寄存器寻址 3.2 ARM处理器寻址方式寻址方式分类——多寄存器寻址 3.2 ARM处理器寻址方式寻址方式分类——多寄存器寻址 简单的ARM程序 简单的ARM程序 4.1 指令格式 ARM指令集——指令格式 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.1 指令格式 ARM指令集——第2个操作数 4.2 条件码 ARM指令集——条件码 4.2 条件码 ARM指令集——条件码 ARM指令 ARM指令的种类: 存储器访问指令 数据处理指令 乘法指令 ARM分支指令 协处理器指令 杂项指令 伪指令 4.3 存储器加载/存储指令 ARM指令集——存储器加载/存储指令 4.4 ARM数据处理指令 ARM指令集——ARM数据处理指令 4.5 乘法指令 ARM指令集——乘法指令 4.6 分支指令 ARM指令集——分支指令 4.7 协处理器指令 ARM指令集——协处理器指令 SWI指令产生软件中断时,处理器将执行如下操作: 将SWI指令的下一条指令地址保存到R14_svc. 将CPSR保存到SPSR_svc中. 将CPSR[4:0]设置为0b10011,进入管理模式,并将CPSR[7]置为1,以禁止IRQ。将PC设置为0x08,从该处开始执行指令。 软件中断处理完毕,通过以下指令返回:  MOVS PC,R14_svc 第5章 ARM汇编语言程序设计 ARM汇编语言语句格式 ARM汇编语言的语句格式: {symbol}{instruction|directive|pseudo-instruction}{comment} 5.1.ARM汇编语言的伪操作 、宏指令和伪指令 5.1.ARM汇编语言的伪操作 、宏指令和伪指令 5.1.ARM汇编语言的伪操作 、宏指令和伪指令 5.1.ARM汇编语言的伪操作 、宏指令和伪指令 ARM汇编语言伪指令 ARM伪指令 ADS编译环境下的ARM伪操作和宏指令 变量定义举例 GBLA   arithmetic ;声明一个全局的算术变量 arithmatic SETA 0xEF ;向该变量赋值 SPACE arithmetic  ;使用该变量 GBLL logical    ;声明一个全局的逻辑变量 logical SETL {TRUE}  ;向该变量赋值 局部变量定义举例 MACRO      ;声明一个宏 $ label message $ a ;宏的原型,宏的名称为  ;message,有一个参数$ a LCLS string ;声明一个局部串变量string String SETS “error” ;向该变量赋值 $ label ;代码 INFO 0,”string”:CC: : STR: $ a ;使用该串变量 MEND ;宏定义结束 MAP 8192 consta FIELD 4 constb FIELD 4 x FIELD 8 y FIELD 8 string FIELD 16 MACRO {$label} macroname {$parameter} …              ;宏代码 MEND 局部变量定义举例 MACRO      ;声明一个宏 $ label message $ a ;宏的原型,宏的名称为  ;message,有一个参数$ a LCLS string ;声明一个局部串变量string String SETS “error” ;向该变量赋值 $ label ;代码 INFO 0,”string”:CC: : STR: $ a ;使用该串变量 MEND ;宏定义结束 GNU编译环境下的ARM伪操作与宏指令 ARM汇编程序实例注意:ADS编译环境下的汇编代码与GNU编译环境下(Embest IDE内部集成GNU的开发工具)有较多不同点,主要是符号及伪操作的不同. 5.2 ARM汇编语言语句格式 ARM汇编中的文件格式: 5.2 ARM汇编语言语句格式 ARM汇编语言语句格式: 5.2 ARM汇编语言语句格式 ARM汇编语言的语句格式: 注意: ● 在ARM 汇编语言中,各个指令、伪指令及伪操作的助记符可全部用大写字母,也可全部用小写字母,但不能在一个助记符中既有大写字母又有小写字母. ● 源程序中,在语句之间适当地插入空行,可提高源代码的可读性. ● 如果一条语句很长,为了提高可读性,可使用”\”将该长语句分成若干行来写,在”\”之后不能再有其他字符,包括空格和制表符. 5.2 ARM汇编语言语句格式 ARM汇编语言中的符号 5.2 ARM汇编语言语句格式 ARM汇编语言中的符号----变量 5.2 ARM汇编语言语句格式 ARM汇编语言中的符号----数字常量 5.2 ARM汇编语言语句格式 ARM汇编语言中的符号----标号 5.2 ARM汇编语言语句格式 ARM汇编语言中的符号----局部标号 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---字符串表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---字符串表达式 局部变量定义举例 MACRO      ;声明一个宏 $ label message $ a ;宏的原型,宏的名称为 ;message,有一个参数$ a LCLS string ;声明一个局部串变量string String SETS “error” ;向该变量赋值 $ label ;代码 INFO 0,”string”:CC: : STR: $ a ;使用该串变量 MEND ;宏定义结束 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---数字表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式---基于寄存器和基于PC的表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----逻辑表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----逻辑表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----逻辑表达式 5.2 ARM汇编语言语句格式 ARM汇编语言中的表达式----其他操作符 5.2 ARM汇编语言语句格式以ADS编译器下汇编语言程序设计的格式为例,来说明ARM汇编语言程序的基本格式. 5.2 ARM汇编语言语句格式 5.2 ARM汇编语言程序格式 5.2 ARM汇编语言语句格式 5.3 ARM汇编语言编程的重点 ARM数据处理操作 5.3 ARM汇编语言编程的重点 ARM数据处理操作 5.3 ARM汇编语言编程的重点 ARM数据处理操作 5.3 ARM汇编语言编程的重点 设置条件码 5.3 ARM汇编语言编程的重点 设置条件码 5.3 ARM汇编语言编程的重点 设置条件码 CMP R0,R1 CMPEQ R2,R3 ADDEQ R4,R4,#1 ;If((a==b)&&(c==d)) e++ 5.3 ARM汇编语言编程的重点 设置条件码 5.3 ARM汇编语言编程的重点 设置条件码 5.3 ARM汇编语言编程的重点 汇编语言子程序调用及返回 5.3 ARM汇编语言编程的重点 汇编语言子程序调用及返回 5.3 ARM汇编语言编程的重点 汇编语言子程序调用及返回 5.3 ARM汇编语言编程的重点 跳转表 5.3 ARM汇编语言编程的重点 跳转表 5.3 ARM汇编语言编程的重点 跳转表 5.3 ARM汇编语言编程的重点 ARM与Thumb 之间的状态转换及函数的互相调用 ARM汇编程序实例 在ADS与GNU编译环境下的简单ARM指令程序 AREA Block,CODE,READONLY NUM EQU 20 ENTRY LDR R0,=src LDR R1,=dst MOV R2,#NUM MOV SP,#0x400 Bcopy MOVS R3,R2,LSR#3 BEQ Cword STMFD SP!,{R4-R11} Ocopy LDMIA R0!,{R4-R11} STMIA R1!,{R4-R11} SUBS R3,R3,#1 BNE Ocopy LDMFD SP!,{R4-R11} Cword ANDS R2,R2,#7 BEQ Stop Wcopy LDR R3,[R0],#4 STR R3,[R1],#4 SUBS R2,R2,#1 BNE Wcopy Stop MOV R0,#0x18 LDR R1,=0x20026 SWI 0x123456 AREA Bdata,DATA,READWRITE src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END 第6章 ARM-Thumb交互工作 6.1 Thumb指令集 Thumb指令集 简单的Thumb程序 6.1 Thumb 指令集 Thumb指令集与ARM指令集的区别 6.1 Thumb指令集 Thumb存储器访问指令 5.1 ARM汇编语言伪指令 Thumb存储器访问指令 6.1 Thumb指令 Thumb存储器访问指令 6.1 Thumb指令 Thumb存储器访问指令 6.1 Thumb指令 Thumb数据处理指令 5.1 ARM汇编语言伪指令 Thumb数据处理指令——数据传送指令 5.1 ARM汇编语言伪指令 Thumb数据处理指令——算术逻辑运算指令 5.1 ARM汇编语言伪指令 Thumb分支指令 6.2 ARM-Thumb交互工作 ARM与Thumb 之间的状态转换及函数的互相调用 6.2 ARM-Thumb交互工作 ARM与Thumb 之间的状态转换及函数的互相调用 6.2 ARM-Thumb交互工作 ARM与Thumb 之间的状态转换及函数的互相调用 6.2 ARM-Thumb交互工作 ARM与Thumb 之间的状态转换及函数的互相调用 6.2 ARM-Thumb交互工作 ARM与Thumb 之间的状态转换及函数的互相调用 6.4 交互子程序和Veneer 调用者程序和被调用程序均在一个源程序中,可进行交互工作,如若两种状态下的程序位于不同的文件中,能否进行交互工作呢?答案是肯定的,只要程序编写过程中遵守ARM和Thumb过程调用标准ATPCS(ARM and Thumb Procedure Call Standards),程序间就可以进行交互工作.此时需要设置相应的编译选项,使编译器按照ATPCS规则编译程序,ARM连接器在检测到ARM和Thumb混和编程的时候,会自动产生并插入一个称为伪装(veneer)的小代码段,用来根据程序需要完成ARM - Thumb状态的切换。 6.4 交互子程序和Veneer 交互编译选项这个编译选项就是-apcs/interwork。通过使用-apcs/interwork编译项,可以强制在子程序返回时使用BX LR指令而非MOV PC, LR指令。例:两个处于不同状态的汇编程序间的交互工作。 6.4 交互子程序和Veneer 我们可以通过下面的操作完成两文件间的交互工作: armasm arm.s armasm thumb.s –apcs/interwork armlink arm.o thumb.o 通常在编译程序时,我们应尽量选用-apcs/interwork选项。-apcs/interwork编译器选项可以保证所有的ARM和Thumb 、C或C++编译器编译的模块能够在各种处理器状态间相互调用: tcc -apcs /interwork armcc -apcs /interwork tcpp -apcs /interwork armcpp -apcs /interwork 在interwork选项下编译的代码模块会比原Thumb或ARM代码模块大一些,例如对Thumb程序,典型的会增加约2%的容量。因此没有必要对所有的程序进行交互编译,只对那些包含交互子程序调用的程序进行交互编译即可。 6.4 交互子程序和Veneer Veneer 所谓Veneer是由连接器自动生成并插入到汇编程序的一小段代码。通常在下面两种情况下,连接器会生成Veneer:(1)被调用程序包含状态切换; (2)被调用程序的地址超出了调用指令的寻址范围。连接时,连接器先找到veneer,再连接需调用的程序。根据被调用程序的状态,以及其与调用者间距离的远近,Veneer包含三种状态:长、短以及内嵌。由此可见,Veneer的使用会增加代码的长度。如果调用者在距离相距不远的空间内多次调用相同的程序,则连接器会尽量使用相同的Veneer,而非生成新的Veneer,从而在一定程度上减小了代码量。为了使Veneer尽量的减少占用空间,我们可以采取以下两种措施: (1)尽量使关联的程序的存储空间靠近; (2)较少状态切换。 6.4 交互子程序和Veneer 利用Veneer,在满足下列规则的条件下,可以方便的进行C和C++以及汇编语言程序间的交互工作: (1)调用者程序的编写可不考虑交互工作的问题,对于汇编语言编写的程序使用BL指令进行程序调用。 (2)若被调用程序为C语言程序,使用-apcs /interwork选项进行编译;若被调用程序为汇编语言程序,设置其INTERWORK属性并用BX lr返回。 在Embest IDE集成开发环境中,对于交互工作的编译设置起来更为简单,只需根据情况,在属性设置界面的assembler对话框中选中“make the assembled code as supporting interworking”或在complier对话框中选中“ARM interworking”或“Thumb interworking”即可。 6.3 ARM v5T扩展 ARM的体系结构大致可以分为5个主要的版本:ARM v1T、 ARM v2T 、 ARM v3T 、 ARM v4T 、 ARM v5T 前面介绍的ARM7TDMI-S处理器内核使用的是ARM v4T 版本, ARM v5T版本的ARM体系结构中增加了额外的对交互工作的支持,除BX指令外,增加了BLX指令,另外LDR,LDM及POP指令也可以进行程序状态的切换. 6.3 ARM v5T扩展 ARM的体系结构大致可以分为5个主要的版本:ARM v1T、 ARM v2T 、 ARM v3T 、 ARM v4T 、 ARM v5T 前面介绍的ARM7TDMI-S处理器内核使用的是ARM v4T 版本, ARM v5T版本的ARM体系结构中增加了额外的对交互工作的支持,除BX指令外,增加了BLX指令,另外LDR,LDM及POP指令也可以进行程序状态的切换.UL5红软基地

PPT分类Classification

Copyright:2009-2024 红软网 rsdown.cn 联系邮箱:rsdown@163.com

湘ICP备2024053236号-1