处理器编程模型与指令系统.ppt
《处理器编程模型与指令系统.ppt》由会员分享,可在线阅读,更多相关《处理器编程模型与指令系统.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计大学教程第四章第四章 ARM ARM处理器处理器编程模型与指令系统编程模型与指令系统 主要内容4.1 ARM微处理器的工作状态微处理器的工作状态4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常的异常 4.6 ARM微处理器的指令系统基础微处理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.1 ARM微处理器的工作状态从编程的角度看,从编程的角度看,ARM微处理器的工作状微处理器的工作状态一般
2、有两种,并可在两种状态之间切换:态一般有两种,并可在两种状态之间切换:ARM状态状态:此时处理器执行此时处理器执行3232位的字对位的字对齐的齐的ARMARM指令指令Thumb状态状态:此时处理器执行此时处理器执行1616位的、位的、半字对齐的半字对齐的ThumbThumb指令指令4.1 ARM微处理器的工作状态ARM指令集和指令集和Thumb指令集均有切换处理器状态指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,应该处于微处理器在开始执行代码时,应该处于ARM状态状态 进入进入ARM状态状态:当操作数寄存器的
3、状态:当操作数寄存器的状态位(位位(位0)为)为0时,执行时,执行BX指令时可以使指令时可以使微处理器从微处理器从Thumb状态切换到状态切换到ARM状态。状态。进入进入Thumb状态状态:当操作数寄存器的状:当操作数寄存器的状态位(位态位(位0)为)为1时,可以采用执行时,可以采用执行BX指指令的方法,使微处理器从令的方法,使微处理器从ARM状态切换状态切换到到Thumb状态。状态。主要内容4.1 ARM微处理器的工作状态微处理器的工作状态4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常
4、的异常 4.6 ARM微处理器的指令系统基础微处理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.2 ARM微处理器的运行模式ARM微处理器支持微处理器支持7种运行模式,分别为:种运行模式,分别为:1.用户模式用户模式(usr):ARM处理器正常的程序执行状态;处理器正常的程序执行状态;2.快速中断模式快速中断模式(fiq):用于高速数据传输或通道处理;用于高速数据传输或通道处理;3.外部中断模式外部中断模式(irq):用于通用的中断处理;用于通用的中断处理;4.管理模式管理模式(supervisor):操作
5、系统使用的保护模式;操作系统使用的保护模式;5.数据访问终止模式数据访问终止模式(abort):当数据或指令预取终止当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;时进入该模式,可用于虚拟存储及存储保护;6.系统模式系统模式(system):运行具有特权的操作系统任务;运行具有特权的操作系统任务;7.未定义指令中止模式未定义指令中止模式(undefined):当未定义的指令当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软执行时进入该模式,可用于支持硬件协处理器的软件仿真。件仿真。4.2 ARM微处理器的运行模式除用户模式以外,其余的所有除用户模式以外,其余的所有6种模式称
6、种模式称之为之为非用户模式非用户模式,或,或特权模式特权模式(Privileged Modes);除用户模式和系统模式以外的除用户模式和系统模式以外的5种又称为种又称为异常模式(异常模式(Exception Modes),常用于,常用于处理中断或异常,以及需要访问受保护处理中断或异常,以及需要访问受保护的系统资源等情况。的系统资源等情况。主要内容4.1 ARM微处理器的工作状态微处理器的工作状态4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常的异常 4.6 ARM微处理器的指令系统基础微处
7、理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.3 ARM体系结构的存储器格式ARM体系结构可以用两种方法存储字数据体系结构可以用两种方法存储字数据 大端格式大端格式:字数据的高字节存储在低地字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址址中,而字数据的低字节则存放在高地址中。中。4.3 ARM体系结构的存储器格式ARM体系结构可以用两种方法存储字数据体系结构可以用两种方法存储字数据 小端格式小端格式:与大端存储格式相反,在小与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据端存储格
8、式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字的低字节,高地址存放的是字数据的高字节。节。主要内容4.1 ARM微处理器的工作状态微处理器的工作状态4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常的异常 4.6 ARM微处理器的指令系统基础微处理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.4 寄存器组织4.4.1 ARM状态下的寄存器组织状态下的寄存器组织 通用寄存器通用寄存器:通用
9、寄存器包括:通用寄存器包括R0R15,可以分为三类:可以分为三类:未分组寄存器未分组寄存器R0R7分组寄存器分组寄存器R8R14程序计数器程序计数器PC(R15)ARM状态下的寄存器组织4.4 寄存器组织4.4.1 ARM状态下的寄存器组织状态下的寄存器组织 状态状态寄存器寄存器 当前程序状态寄存器(当前程序状态寄存器(Current Program Status Register,CPSR)备份的程序状态寄存器(备份的程序状态寄存器(Saved Program Status Register,SPSR)4.4 寄存器组织程序状态寄存器格式程序状态寄存器格式 4.4 寄存器组织4.4.2 Th
10、umb状态下的寄存器组织状态下的寄存器组织 Thumb状态下的寄存器集是状态下的寄存器集是ARM状态下寄状态下寄存器集的一个子集,程序可以直接访问存器集的一个子集,程序可以直接访问8个通用寄存器(个通用寄存器(R7R0)、程序计数器)、程序计数器(PC)、堆栈指针()、堆栈指针(SP)、连接寄存器)、连接寄存器(LR)和)和CPSR。Thumb状态下的寄存器组织与ARM状态下的寄存器组织的关系4.4 寄存器组织Thumb状态下的寄存器组织与状态下的寄存器组织与ARM状态下的寄存器状态下的寄存器组织的关系:组织的关系:Thumb状态下和状态下和ARM状态下的状态下的R0R7是相同的;是相同的;T
11、humb状态下的状态下的SP对应于对应于ARM状态下的状态下的R13;Thumb状态下的状态下的LR对应于对应于ARM状态下的状态下的R14;Thumb状态下的程序计数器对应于状态下的程序计数器对应于ARM状态下状态下R15;Thumb状态下和状态下和ARM状态下的状态下的CPSR和所有的和所有的SPSR是相同的是相同的 Thumb状态下的寄存器组织主要内容4.1 ARM微处理器的工作状态微处理器的工作状态4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常的异常 4.6 ARM微处理器的指令
12、系统基础微处理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.5 ARM的异常当正常的程序执行流程发生暂时的停止时,当正常的程序执行流程发生暂时的停止时,称之为称之为异常异常。在处理异常之前,当前处理器的状态必在处理异常之前,当前处理器的状态必须保留须保留 处理器允许多个异常同时发生,它们将处理器允许多个异常同时发生,它们将会按固定的优先级进行处理会按固定的优先级进行处理 异常与中断的概念并不完全等同异常与中断的概念并不完全等同 4.5 ARM的异常4.5.1 ARM体系结构所支持的异常类型体系结构所支持的异
13、常类型 在在ARM体系结构中,异常中断用来处理体系结构中,异常中断用来处理软件中断、未定义指令陷阱(不是真正的软件中断、未定义指令陷阱(不是真正的“意外意外”事件)、系统复位功能(在逻辑事件)、系统复位功能(在逻辑上发生在程序执行前而不是程序执行中)上发生在程序执行前而不是程序执行中)和外部事件。这些和外部事件。这些“不正常不正常”事件都被划事件都被划归归“异常异常”,因为在处理器的控制机制中,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。它们都使用同样的流程进行异常处理。4.5 ARM的异常ARM异常按引起异常事件的不同可分为以异常按引起异常事件的不同可分为以下下3类类:指令执
14、行引起的直接异常指令执行引起的直接异常 指令执行引起的间接异常指令执行引起的间接异常 外部产生的与指令流无关的异常外部产生的与指令流无关的异常 异常异常类类型型具体含具体含义义复位复位(RESET)当当处处理器的复位理器的复位电电平有效平有效时时,产产生复位异常,程序跳生复位异常,程序跳转转到复位异常到复位异常处处理程序理程序处执处执行。行。未定未定义义指令指令(UDEF)当当ARM处处理器或理器或协处协处理器遇到不能理器遇到不能处处理的指令理的指令时时,产产生未定生未定义义指令异指令异常。可使用常。可使用该该异常机制异常机制进进行行软软件仿真。件仿真。软软件中断件中断(SWI)该该异常由异常
15、由执执行行SWI指令指令产产生,可用于用生,可用于用户户模式下的程序模式下的程序调调用特用特权权操作操作指令。可使用指令。可使用该该异常机制异常机制实现实现系系统统功能功能调调用。用。指令指令预预取中止取中止(PABT)若若处处理器理器预预取指令的地址不存在,或取指令的地址不存在,或该该地址不允地址不允许许当前指令当前指令访问访问,存,存储储器会向器会向处处理器理器发发出中止信号,但当出中止信号,但当预预取的指令被取的指令被执执行行时时,才会,才会产产生生指令指令预预取中止异常。取中止异常。数据中止数据中止(DABT)若若处处理器数据理器数据访问访问指令的地址不存在,或指令的地址不存在,或该该
16、地址不允地址不允许许当前指令当前指令访问访问时时,产产生数据中止异常。生数据中止异常。外部中断外部中断请请求求(IRQ)当当处处理器的外部中断理器的外部中断请请求引脚有效,且求引脚有效,且CPSR中的中的I位位为为0时时,产产生生IRQ异常。系异常。系统统的外的外设设可通可通过该过该异常异常请请求中断服求中断服务务。快速中断快速中断请请求求(FIQ)当当处处理器的快速中断理器的快速中断请请求引脚有效,且求引脚有效,且CPSR中的中的F位位为为0时时,产产生生FIQ异常。异常。ARM体系结构所支持的异常体系结构所支持的异常异常向量(Exception Vectors)地地 址址异异 常常进进入模
17、式入模式0 x0000,0000复位复位管理模式管理模式0 x0000,0004未定未定义义指令指令未定未定义义模式模式0 x0000,0008软软件中断件中断管理模式管理模式0 x0000,000C中止(中止(预预取指令)取指令)中止模式中止模式0 x0000,0010中止(数据)中止(数据)中止模式中止模式0 x0000,0014保留保留保留保留0 x0000,0018IRQIRQ0 x0000,001CFIQFIQ4.5 ARM的异常4.5.3 对异常的响应对异常的响应 ARM微处理器对异常的响应过程如下:微处理器对异常的响应过程如下:1、将下一条指令的地址存入相应的连接寄存器、将下一条
18、指令的地址存入相应的连接寄存器LR,以便程序在处理异常返回时能从正确的,以便程序在处理异常返回时能从正确的位置重新开始执行;位置重新开始执行;2、将、将CPSR复制到相应的复制到相应的SPSR中;中;3、设置当前状态寄存器、设置当前状态寄存器CPSR中的相应位;中的相应位;4、给程序计数器(、给程序计数器(PC)强制赋值,使程序从相)强制赋值,使程序从相应的异常向量地址开始执行中断处理程序应的异常向量地址开始执行中断处理程序;4.5 ARM的异常4.5.4 从异常返回从异常返回ARM微处理器会执行以下操作从异常返回微处理器会执行以下操作从异常返回:1、所有修改过的用户寄存器必须从处理程序的、所
19、有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(出栈);保护堆栈中恢复(出栈);2、将连接寄存器、将连接寄存器LR的值减去相应的偏移量送的值减去相应的偏移量送到到PC中;中;3、将、将SPSR_mode寄存器内容复制回寄存器内容复制回CPSR中,中,使得使得CPSR从相应的从相应的SPSR中恢复,即恢复被中恢复,即恢复被中断的程序工作状态;中断的程序工作状态;4、若在进入异常处理时设置了中断禁止位,要、若在进入异常处理时设置了中断禁止位,要在此清除。在此清除。4.5 ARM的异常4.5.4 从异常返回从异常返回 为确保指令总是按正确的操作模式读取,为确保指令总是按正确的操作模式读取,以保证
20、存储器保护方案不被绕过,还有更以保证存储器保护方案不被绕过,还有更加微妙的困难。因此,加微妙的困难。因此,ARM提供了提供了2种返种返回处理机制回处理机制 第一种机制:返回地址保存在第一种机制:返回地址保存在R14;第二种机制:异常处理程序把返回地址拷贝到第二种机制:异常处理程序把返回地址拷贝到堆栈(在这种情况下,堆栈(在这种情况下,SPSR也和也和PC一样必须一样必须保存),可使用一条多寄存器传送指令来恢复保存),可使用一条多寄存器传送指令来恢复用户寄存器,并实现返回:用户寄存器,并实现返回:4.5 ARM的异常4.5.5 各类异常的具体描述各类异常的具体描述1、未定义指令异常(、未定义指令
21、异常(Undefined Instruction)2、软件中断异常(、软件中断异常(Software Interrupt)3、中止异常(、中止异常(Abort)4、快速中断请求异常(、快速中断请求异常(Fast Interrupt Request,FIQ)5、外部中断请求异常(、外部中断请求异常(Interrupt Request,IRQ)4.5 ARM的异常4.5.6 异常的进入异常的进入/退出退出异常异常类类型型返回指令返回指令以前的状以前的状态态注意注意ARM R14_xThumb R14_xBLMOV PC,R14PC4PC21UDEFMOVS PC,R14_undPC4PC21SWI
22、MOVS PC,R14_svcPC4PC21PABTSUBS PC,R14_abt,#4PC4PC41DABTSUBS PC,R14_abt,#8PC8PC83FIQSUBS PC,R14_fiq,#4PC4PC42IRQSUBS PC,R14_irq,#4PC4PC42RESETNA44.5 ARM的异常4.5.7 异常优先级(异常优先级(Exception Priorities)优优先先级级异异 常常1(最高)(最高)复位复位2数据中止数据中止3FIQ4IRQ5预预取指令中止取指令中止6(最低)(最低)未定未定义义指令、指令、SWI主要内容4.1 ARM微处理器的工作状态微处理器的工作状态
23、4.2 ARM微处理器的运行模式微处理器的运行模式4.3 ARM体系结构的存储器格式体系结构的存储器格式4.4 寄存器组织寄存器组织 4.5 ARM的异常的异常 4.6 ARM微处理器的指令系统基础微处理器的指令系统基础 4.7 ARM指令的寻址方式指令的寻址方式 4.8 ARM指令集指令集 4.9 Thumb指令及应用指令及应用 4.6 ARM微处理器的指令系统基础4.6.1 指令长度及数据类指令长度及数据类 ARM微处理器的指令长度可以是微处理器的指令长度可以是32位位(在(在ARM状态下)状态下),也可以为也可以为16位(在位(在Thumb状态下)状态下)。ARM微处理器中支持微处理器中
24、支持字节(字节(8位)位)、半字半字(16位)位)、字(字(32位)位)三种数据类型,三种数据类型,其中,字需要其中,字需要4字节对齐(地址的低两位字节对齐(地址的低两位为为0)、半字需要)、半字需要2字节对齐(地址的最字节对齐(地址的最低位为低位为0)。)。4.6 ARM微处理器的指令系统基础4.6.2 ARM微处理器的指令的分类与格式微处理器的指令的分类与格式指令分类简述指令分类简述 ARM微处理器指令集是加载微处理器指令集是加载/存储型的;存储型的;ARM微处理器的指令集可以分为微处理器的指令集可以分为跳转指跳转指令令、数据处理指令数据处理指令、程序状态寄存器处程序状态寄存器处理指令理指
25、令、Load/Store指令指令、协处理器指令协处理器指令和和异常产生异常产生指令六大类;指令六大类;4.6 ARM微处理器的指令系统基础4.6.2 ARM微处理器的指令的分类与格式微处理器的指令的分类与格式指令格式指令格式 ARM指令使用的基本格式:指令使用的基本格式:S,4.6 ARM微处理器的指令系统基础4.6.2 ARM微处理器的指令的分类与格式微处理器的指令的分类与格式指令格式使用举例指令格式使用举例:LDR R0,R1 BEQ DATAEVEN ADDS R2,R1,#1 SUBNES R2,R1,#0 x20指令的条件域条件条件码码助助记记符后符后缀缀标标 志志含含 义义0000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理器 编程 模型 指令系统
限制150内