ARM微处理器体系结构_第1页
ARM微处理器体系结构_第2页
ARM微处理器体系结构_第3页
ARM微处理器体系结构_第4页
ARM微处理器体系结构_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.2ARM微处理器体系结构

2.2.1数据类型

2.2.2ARM微处理器的工作状态

2.2.3ARM体系结构的存储器格式

2.2.4理器模式

2.2.5寄存器组织

1.ARM状态下的寄存器组织

2.Thumb状态下的寄存器组织

2.2.6异常2.2ARM微处理器体系结构2.2.1数据类型ARM处理器支持以下数据类型:字(Word):字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位,请注意区分。半字(Half-Word):半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。字节(Byte):各种处理器体系结构中,字节的长度均为8位。

2.2.2ARM微处理器的工作状态

从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:ARM状态,此时处理器执行32位的字对齐的ARM指令;Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM处理器在两种工作状态之间可以切换:进入Thumb状态。当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。进入ARM状态。当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWIARM状态执行)。在此情况下,把PC放人异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。2.2.3ARM体系结构的存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式,具体说明如下。◆大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。891011456701233124231615870字地址高地址低地址以大端格式存储字数据 ◆小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。11109876543210以小端格式存储字数据高地址低地址3124231615870字地址8402.2.4理器模式 ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式,系统复位后的缺省模式。1.指令终止模式(abt):指令预取终止时进入该模式。2.数据访问终止模式(abt):当数据访问终止时进入该 模式,可用于虚拟存储及存储保护。指令未定义模式(und):支持硬件协处理器指令的软件 仿真系统模式(sys):运行具有特权的操作系统任务。ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称为非用户模式或特权模式(PrivilegedModes);其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。处理器启动时的模式转换图超级模式(Supervisor)多种特权模式变化用户程序的运行模式复位后的缺省模式主要完成各模式的堆栈设置,注意不要进入用户模式一般为用户模式User处理器模式寄寄存器组织织如图2-4所示,ARM微处处理器共有37个32位位寄存器,其其中31个为为通用寄存器器,6个为状状态寄存器。。但是这些寄寄存器不能被被同时访问,,具体哪些寄寄存器是可编编程访问的,,取决于微处处理器的工作作状态及具体体的运行模式式。但在任何何时候,通用用寄存器R0~R14、、程序计数器器PC、一个个或两个状态态寄存器都是是可访问的。。1.ARM状态下的寄寄存器组织(1)通用用寄存器.(2)寄存存器R16(1)通用用寄存器.通用寄存器包包括R0~R15,可以以分为3类::未分组寄存器器R0~R7分组寄存器R8~R14程序计数器PC(R15)①未分组寄寄存器R0~R7在所有的运行行模式下,未未分组寄存器器都指向同一一个物理寄存存器,它们未未被系统用作作特殊的用途途,因此,在在中断或异常常处理进行运运行模式转换换时,由于不不同的处理器器运行模式均均使用相同的的物理寄存器器,可能会造造成寄存器中中数据的破坏坏,这一点在在进行程序设设计时应引起起注意。②分组寄存存器R8~R14对于分组寄存存器,它们每每一次所访问问的物理寄存存器与处理器器当前的运行行模式有关。。对于R8~R12,每个个寄存器对应应两个不同的的物理寄存器器,当使用fiq模式时时,访问寄存存器R8_fiq~R12_fiq;当使用除除fiq模式式以外的其他他模式时,访访问寄存器R8_usr~R12_usr。对于R13、、R14,每每个寄存器对对应6个不同同的物理寄存存器,其中一一个是用户模模式与系统模模式共用,另另外5个物理理寄存器对应应于其他5种种不同的运行行模式。采用以下记号号来区分不同的物理寄寄存器:R13_<mode>R14_<mode>其中,mode为以下几几种模式之一一:usr、、fiq、irq、svc、abt、und。。寄存器R13在ARM指指令中常用作作堆栈指针,,但这只是一一种习惯用法法,用户也可可使用其他的的寄存器作为为堆栈指针。。而在Thumb指令集集中,某些指指令强制性的的要求使用R13作为堆堆栈指针。由于处理器的的每种运行模模式均有自己己独立的物理理寄存器R13,在用户户应用程序的的初始化部分分,一般都要要初始化每种种模式下的R13,使其其指向该运行行模式的栈空空间.这样,当程序序的运行进入入异常模式时时,可以将需需要保护的寄寄存器放入R13所指向向的堆栈,而而当程序从异异常模式返回回时,则从对对应的堆栈中中恢复,采用用这种方式可可以保证异常常发生后程序序的正常执行行。R14也称称做子程序序连接寄存存器(SubroutineLinkRegister)或或连接寄存存器LR。。当执行BL子程序调调用指令时时,R14中得到R15(程程序计数器器PC)的的备份。其其他情况下下,R14用作通用用寄存器。。与之类似,,当发生中中断或异常常时,对应应的分组寄寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保保存R15的返回值值。寄存器R14常用于于如下的情情况:在每一种运运行模式下下,都可用用R14保保存子程序序的返回地地址,当用用BL或BLX指令令调用子程程序时,将将PC的当当前值复制制给R14,执行完完子程序后后,又将R14的值值复制回PC,即可可完成子程程序的调用用返回。以上的描述述可用指令令完成:执行以下任任意一条指指令:MOVPC,LR或BXLR在子程序入入口处使用用以下指令令将R14存入入堆栈:STMFDSP!,{<Regs>,LR}对应的,使使用以下指指令可以完完成子程序序返回:LDMFDSP!,{<Regs>,PC}R14也可可作为通用用寄存器。。③程序计计数器PC(R15)寄存器R15用作程程序计数器器(PC)。在ARM状态下下,位[1:0]为为0,位[31:2]用于保保存PC;;在Thumb状态态下,位[0]为0,位[31:1]用于保存存PC。虽然可以用用作通用寄寄存器,但但是有一些些指令在使使用R15时有一些些特殊限制制,若不注注意,执行行的结果将将是不可预预料的。在ARM状状态下,PC的0和和1位是0,在Thumb状状态下,PC的0位位是0。R15虽然也也可用作通用用寄存器,但但一般不这么么使用,因为为对R15的的使用有一些些特殊的限制制,当违反了了这些限制时时,程序的执执行结果是未未知的。由于ARM体体系结构采用用多级流水线线技术,对于于ARM指令令集而言,PC总是指向向当前指令的的下两条指令令的地址,即即PC的值为为当前指令的的地址值加八八个字节。在ARM状态态下,任一时时刻可以访问问以上所讨论论的16个通通用寄存器和和1~2个状状态寄存器。。在非用户模模式(特权模模式)下,,则可访问到到特定模式分分组寄存器,,图2-4说说明在每一种种运行模式下下,哪一些寄寄存器是可以以访问的。(2)寄存存器R16寄存器R16用作CPSR(CurrentProgramStatusRegister,当当前程序状态态寄存器),,CPSR可可在任何运行行模式下被访访问,它包括括条件标志位位、中断禁止止位、当前处处理器模式标标志位,以及及其他一些相相关的控制和和状态位。每一种运行模模式下又都有有一个专用的的物理状态寄寄存器,称为为SPSR(SavedProgramStatusRegister,备份的程程序状态寄存存器),当异异常发生时,SPSR用用于保存CPSR的当前前值,从异常常退出时则可可由SPSR来恢复CPSR。由于用户模式式和系统模式式不属于异常常模式,它们们没有SPSR,当在这这两种模式下下访问SPSR时,结果果是未知的。。程序状态字参参见后面说明明。2.Thumb状态下下的寄存器组组织Thumb状状态下的寄存存器集是ARM状态下寄寄存器集的一一个子集,程程序可以直接接访问8个通通用寄存器(R7~R0)、程序计计数器(PC)、堆栈指指针(SP)、连接寄存存器(LR)和CPSR。同时,在每一一种特权模式式下都有一组组SP、LR和SPSR。图2-4表明Thumb状态下的的寄存器组织织。(1)Thumb状态态下的寄存器器组织与ARM状态下的的寄存器组织织的关系Thumb状状态下和ARM状态下的的R0~R7是相同的Thumb状状态下和ARM状态下的的CPSR和和所有的SPSR是相同同的Thumb状状态下的SP对应于ARM状态下的的R13Thumb状状态下的LR对应于ARM状态下的的R14Thumb状状态下的程序序计数器对应应于ARM状状态下的R15以上的对应关关系如图2-5所示。(2)访问问THUMB状态下的高高位寄存器(Hi-registers)在Thumb状态下,高高位寄存器R8~R15并不是标准准寄存器集的的一部分,但但可使用汇编编语言程序有有限制地访问问这些寄存器器,将其用作作快速的暂存存器.使用带特殊变变量的MOV指令,数数据可以在低低位寄存器和和高位寄存器器之间进行传传送,高位寄寄存器的值可可以使用CMP和ADD指令进行比比较或加上低低位寄存器中中的值。(3)程序序状态寄存器器ARM体系结结构包含一个个当前程序状状态寄存器(CPSR)和5个备份份的程序状态态寄存器(SPSRs)。备份的程序状状态寄存器用用来进行异常常处理,其功功能包括:保存ALU中中的当前操作作信息。控制允许和禁禁止中断。设置处理器的的运行模式。。程序状态寄存存器每一位的的安排如图2-6所所示.①条件码标标志(ConditionCodeFlags)N、Z、C、、V均为条件件码标志位。。它们的内容容可被算术或或逻辑运算的的结果所改变变,并且可以以决定某条指指令是否被执执行。在ARM状态态下,绝大多多数的指令都都是有条件执执行的。在Thumb状状态下.仅有有分支指令是是有条件执行行的。条件码码标志各位的的具体含义如表2-1所所示。②控制位PSR的低8位(包括I、F、T和和M[4:0])称为控控制位,当发发生异常时这这些位可以被被改变。如果果处理器运行行特权模式,,这些位也可可以由程序修修改。中断禁止位I、FI=1禁禁止IRQ中中断F=1禁禁止FIQ中中断T标志位:该该位反映处理理器的运行状状态。对于ARM体体系结构v5及以上版本本的T系列处处理器,当该该位为1时,,程序运行于于Thumb状态,否则则运行于ARM状态。对于ARM体体系结构v5及以上版本本的非T系列列处理器,当当该位为1时时,执行下一一条指令以引引起未定义的的指令异常;;当该位为0时,表示运运行于ARM状态。运行模式位M[4:0]:M0、M1、M2、M3、、M4是模式式位。这些位位决定了处理理器的运行模模式。具体含含义如表2-2所所示。由表2-2可可知,并不是是所有的运行行模式位的组组合都是有效效的,其他的的组合结果会会导致处理器器进入一个不不可恢复的状状态。③保留位PSR中的其其余位为保留留位,当改变变PSR中的的条件码标志志位或者控制制位时,保留留位不要改变变,在程序中中也不要使用用保留位来存存储数据。保保留位将用于于ARM版本本的扩展。异异常异常(exception)由内部或外外部源产生以以引起处理器器处理一个事事件。例如,,外部中断或或试图执行未未定义指令都都会引起异常常。在处理异异常之前,处处理器状态必必须保留,以以便在异常处处理程序完成成后,原来的的程序能够重重新执行。同同一时刻可能能出现多个异异常。ARM支持7种类型的异常。表2-3列出了异常的的类型以及处处理这些异常常的处理器模模式。异常出出现后,强制制从异常类型型对应的固定定存储器地址址开始执行程程序。这些固固定的地址称称为异常向量量(ExceptionVectors)。。当异常出现时时,异常模式式分组的R14和SPSR用于保存存状态,即R14_<exceptionmode>=returnlinkSPSR_<exception_mode>=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5] =0//*在ARM状态执行行*/if<exceptionmode>==ResetorFIQthenCPSR[6]=1//*禁止止快速中断*//*否则CPSR[6]不变*/CPSR[7]=1//*禁止正常常中断*/PC=exceptionvectoraddress当处理异常返返回时,将SPSR传送送到CPSR,R14传传送到PC。。这可用两种种方法自动完完成,即使用带S位的的数据处理指指令,将PC作为目的寄寄存器;使用带恢复CPSR的多多加载指令。。1.复位位处理器上一旦旦有复位输入入,ARM处处理器立刻停停止执行当前前指令。复位位完成下列操操作R14_svc=UNPREDICTABLEvalueSPSR_svc=UNPREDICTABLEvalueCPSR[4:0]=0b10011/*进进入管理模式式*/CPSR[5]=0/*在ARM状态下执行行*/CPSR[6]=1/*禁止快速速中断*/CPSR[7]=1/*禁止正常常中断*/IfhighvectorsconfiguredthenPC=0xFFFF0000ElsePC=0x00000000复位后,ARM处理器在在禁止中断的的管理模式下下,从地址0x00000000或或OxFFFF0000开始执行指指令。2.未定义指指令异常当ARM处理理器执行协处处理器指令时时,它必须等等待任一外部部协处理器应应答后,才能能真正执行这这条指令。若若协处理器没没有响应,就就会出现未定定义指令异常常。若试图执行未未定义的指令令,也会出现现未定义指令令异常。未定义指令异异常可用于没没有物理协处处理器(硬件件)的系统上上,对协处理理器进行软件件仿真,或在在软件仿真时时进行指令集集扩展。当未定义指令令异常出现时时,执行下列列操作:R14_und=addressofnextinstructionaftertheundefinedinstructionSPSR_und=CPSRCPSR[4:0]=0b11011/*进进入未定义模模式*/CPSR[5]=0/*在ARM状态执行*//*CPSR[6]不变变*/CPSR[7]=1/*禁止正常常中断*/IfhighvectorsconfiguredthenPC=0xFFFF0004ElsePC=0x00000004在仿真未定义义指令后,使使用下列指令令返回,即MOVSPC,R14上面的指令恢恢复PC(从从R14_und)和CPSR(从从SPSR_und),,并返回到未未定义指令后后的下一条指指令。3.软件中断断异常软件中断指令令SWI(SoftWareInterruptlnstruction)进入管理模模式,以请求求特定的管理理(操作系统统)函数。当当执行SWI时,完成下下列操作:R14_svc=addressofnextinstructionaftertheSWIinstructionSPSR_svc=CPSRCPSR[4:0]=0b10011/*进进入管理模式式*/CPSR[5]=0/*在ARM状态执行*//*CPSR[6]不变变*/CPSR[7]=1/*禁止正常常中断*/IfhighvectorsconfiguredthenPC=0xFFFF0008ElesPC=0x00000008完成SWI操操作后,使用用下列指令恢恢复PC(从从R14_svc)和CPSR(从从SPSR_svc),,并返回到SWI指令后后的下一条指指令,即MOVSPC,R144.预取中中止(取指令令存储器中止止)存储器系统发发出存储器中中止(abort)信号号。响应取指指激活的中止止标记所取的的指令无效。。若处理器试图图执行无效指指令,则产生生预取中止异异常。若指令未执行行(例如,指指令在流水线线中发生了转转移),则不不发生预取中中止。在ARMv5及以以上版本中,,执行BKPT指令也会会产生预取中中止异常。当试图执行一一条中止的指指令时,将执执行下列操作作:R14_abt=addressoftheabortedinstruction+4SPSR_abt=CPSRCPSR[4:0]=0b10111/*进进入中止模式式*/CPSR[5]=0/*在ARM状态执行*//*CPSR[6]不变*/CPSR[7]=1/*禁止正常常中断*/IfhighvectorsconfiguredthenPC=0xFFFF000CElsePC=0x0000000C确定中止原因因后,使用下下面指令从中中止模式返回回,即SUBSPC,R14,#4上面的指令恢恢复PC(从从R14_abt)和CPSR(从从SPSR_abt),,并返回到中中止的指令。。5.数据中止止(数据访问问存储器中止止)存储器系统发发出存储器中中止信号。响响应数据访问问(加载或存存储)激活的的中止标记数数据为无效。。在下面的任任何指令或异异常改变CPU状态之前前,数据中止止异常发生。。执行下列操操作:R14_abt=addressoftheabortedinstruction+8SPSR_abt=CPSRCPSR[4:0]=0b10111/*进进入中止模式式*/CPSR[5]=0/*在ARM状态执行*//*CPSR[6]不变*/CPSR[7]=1/*禁止正常常中断*/IfhighvectorsconfiguredthenPC=0xFFFF0010ElsePC=0x00000010确定中止原因因后,使用下下列指令从中中止模式返回回,即SUBSPC,R14,#8上面的指令恢恢复PC(从从R14_abt)和CPSR(从SPSR_abt),并返回重重新执行中止止的指令。若若中止的指令令不需要重新新执行,则使使用下面的指指令:SUBSPC,R14,#46.中断请请求(IRQ)异常通过处理器上上的IRQ输输入引脚,由由外部产生IRQ异常。。IRQ异常常的优先级比比FIQ异常常的低。当进进入FIQ处处理时,会屏屏蔽掉IRQ异常。若CPSR的的I位置为1,则禁止IRQ中断。。若I位清零零,则ARM在指令执行行完之前检查查IRQ输入入。只能在特权模模式下改变I位,当检测测到IRQ时时,执行下列列操作:R14_irq=addressoftheabortedinstruction+4SPSR_irq=CPSRCPSR[4:0]=0b10010/*进进入IRQ模式*/CPSR[5]=0/*在在ARM状状态执行*//*CPSR[6]不变变*/CPSR[7]=1/*禁禁止正常中中断*/IfhighvectorsconfiguredthenPC=0xFFFF0018ElsePC=0x00000018使用下面的的指令从中中断服务返返回,即SUBSPC,,R14,,#4上面的指令令恢复PC(从R14_irq)和CPSR(从SPSR_irq),并并继续执行行被中断的的程序。7.快速中中断请求(FIQ)异常通过处理器器上的FIQ输入引引脚,由外外部产生FIQ异常常。FIQ被设计成成支持数据据传送和通通道处理,,并有足够够的私有(private)寄存器,,从而在这这样的应用用中可避免免对寄存器器保存的需需求,减少少了上下文文切换的总总开销。当CPSR的F位置置1时,禁禁止快速中中断。若F位清零,,则ARM在执行指指令时检查查FIQ输输入。只能能在特权模模式下改变变F位,当当检测到FIQ时,执行下列列操作,即即R14_fiq=addressoftheabortedinstruction+4SPSR_fiq=CPSRCPSR[4:0]=0b10001/*进进入FIQ模式*/CPSR[5]=0/*在在ARM状状态执行*/CPSR[6]=1/*禁禁止快速中中断*/CPSR[7]=1/*禁禁止正常中中断*/IfhighvectorsconfiguredthenPC=0xFFFF001CElsePC=0x0000001C使用下面的的指令从中中断服务返返回,即SUBSPC,,R14,,#4上面的指令令恢复PC(从R14_fiq)和CPSR(从SPSR_fiq),并并继续执行行被中断的的程序。FIQ向量量放在最后后,允许FIQ异常常处理程序序直接放在在地址0x0000001C或0xFFFF001C开开始的位置置,而不需需要由向量量的分支指指令执行跳跳转到异常常处理程序序。8.异常常优先级异常的优先先级如表2-4所列列。优先级异常优先级异常1(最高)复位4IRQ2数据中止5预取中止3FIQ6(最低)未定义指信、SWI9.高端端向量一些ARM实现允许许异常向量量的定位由由32位地地址空间低低端的正常常地址范围围Ox00000000~Ox000000lC,移到到接近于地地址空间高高端的另一一地址范围围0xFFFF0000~0xFFFF00lC。这些改变后后的地址位位置称为高高端向量。。由IMPLEMENTATIONDEFINED决决定是否支支持高端向向量。如果果支持,则则在输入硬硬件配置时时,选择是是使用正常常向量还是是高端向量量。10.异异常的进入入和退出只要正常的的程序流程程被暂时停停止,则异异常发生,,例如服务务外部的中中断。在异常被处处理之前,,必须保存存当前的处处理器状态态,以便当当处理程序序完成后,,原来的程程序能重新新开始。如果几种异异常同时发发生,则对对它们按固固定的次序序处理,可可参考异常常优先级(1)进进入异常的的操作处理一个异异常时,ARM7TDMI用用于:①将下一条条指令的地地址保存在在相应的LR寄存器器中。如果异常是是从ARM状态进入入,则保存存在LR寄寄存器中的的是下一条条指令的地地址(当前前PC+4或PC+8,取决决于异常,,见表2-5)。如果异常是是从Thumb状态态进入,则则保存在LR寄存器器中的是当当前PC的的偏移值。。它能使程程序在异常常处理返回回后从正确确的位置重重新开始。。这就意味异异常处不需需要确定异异常是从何何种状态进进入的。例例如在软件件中断(SWI)情情况下,““MOVSPC,,R14_svc””,总是返返回到下一一条指令,,而与SWI是在ARM还是是Thumb状态下下执行的无无关。②将CPSR复制到到相应的SPSR中中。③迫使CPSR模式式位设置成成取决于异异常的值。。④迫使PC从相关的的异常向量量中取下一一条指令。。也可以设设置中断禁禁止位来阻阻止其它无无法处理的的异常嵌套套。如果在异常常发生时处处理器是在在Thumb状态下下,那么当当用中断异异常向量地地址加载PC时,自自动切换进进入ARM状态。(2)退退出异常的的操作在完成异常常处理后::将LR寄存存器的值减减去相应的的偏移量(偏移量根根据异常不不同而不同同),送到到PC中;;将SPSR复制回CPSR中中;清除中断禁禁止位标志志。另外,不需需要显式切切换回Thumb状状态,因为为从SPSR中将CPSRT位自动动设置为异异常前的原原值。(3)进进入和退出出异常小结结表2-5中总结了进进入异常处处理时保存存在相应的的R14寄寄存器中的的PC值,,以及在退退出异常处处理时推荐荐使用的指指令。PC是具有有预取中止止的BL/SWI/未定义指指令所取的的地址;PC是从FIQ或IRQ取得得优先权后后不能执行行的指令的的地址;PC是产生生数据中止止的加载或或存储指令令的地址;;复位时保存存在R14_svc中的值是是不可预知知的。R0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R6R6R6R6R6R7R7R7R7R7R7R8◣R8-fiqR8R8R8R8R9◣R9-fiqR9R9R9R9R10◣R10-fiqR10R10R10R10R11◣R11-fiqR11R11R11R11R12◣R12-fiqR12R12R12R12R13◣R13-fiq◣13-svc◣13-adt◣13-itq◣13-undR14◣R14-fiq◣14-svc◣14-adt◣14-itq◣14-undR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)Systerm&UserFIQSupervisterAboutIRGUndefinedARM状态下下的积存器组组织CPSRCPSRCPSRCPSRCPSRCPSR

◣SPSR-foq◣SPSR-svc◣SPSR-abt◣SPSR-inq◣SPSR-und返回图2-5Thumb状态下的的寄存器组织织R0R1R2R3R4R5R6R7StackPoint(SP)LinkRegister(LR)ProgramCounter(PC)CPSRSPSRROR1R2R3R4R5R6R7R8R9R10R11R12StackPoint(R13)LinkRegister(R14)ProgramCounter(R15)CPSRSPSRThumb状状态ARM状态返回返回标志位含义N当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零C可以有4种方法设置C的值;加法运算(包括比较指令CMP);当运算结果产生了进位时(无符号数溢出),C=1,否则C=0;减法运算(包括比较指令CMP);当运算时产生了借位(无符号数溢出),C=0,否则C=1;对于包含移位操作的非加/减运算指令,C为移出值的最后一位;对于其它的非加/减运算指令,C的值通常不改变条件码的具体体含义N当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零ZZ=1表示运算的结果为零;Z=0表示运算的结果为非零C可以有4种方法设置C的值;加法运算(包括比较指令CMP);当运算结果产生了进位时(无符号数溢出),C=1,否则C=0;减法运算(包括比较指令CMP);当运算时产生了借位(无符号数溢出),C=0,否则C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论