经济学ARM体系结构学习教案

上传人:深*** 文档编号:83502787 上传时间:2022-05-01 格式:PPTX 页数:136 大小:990.91KB
收藏 版权申诉 举报 下载
经济学ARM体系结构学习教案_第1页
第1页 / 共136页
经济学ARM体系结构学习教案_第2页
第2页 / 共136页
经济学ARM体系结构学习教案_第3页
第3页 / 共136页
资源描述:

《经济学ARM体系结构学习教案》由会员分享,可在线阅读,更多相关《经济学ARM体系结构学习教案(136页珍藏版)》请在装配图网上搜索。

1、会计学1经济学经济学ARM体系结构体系结构第一页,共136页。q世界各大半导体生产商从世界各大半导体生产商从ARMARM公司购买其设计的公司购买其设计的ARMARM微处理器核微处理器核,根据,根据(gnj)(gnj)各自不同的应用领域,加入适当的外围电路,从而形成各自不同的应用领域,加入适当的外围电路,从而形成自己的自己的ARMARM微处理器芯片进入市场。微处理器芯片进入市场。1、 ARM技术(jsh)的应用领域及特点q基于基于ARM技术的微处理器应用约占据了技术的微处理器应用约占据了32位位RISC微处微处 理器理器75以上的市场份额,以上的市场份额,ARM技术正在逐步渗入到我们生活的技术正

2、在逐步渗入到我们生活的各个方面。各个方面。q我国的我国的中兴集成电路、中兴集成电路、大唐电讯、中芯国际和上海华虹大唐电讯、中芯国际和上海华虹,以及国外的一些公司如德州仪器、意法半导体、,以及国外的一些公司如德州仪器、意法半导体、PhilipsPhilips、IntelIntel、SamsungSamsung等都推出了自己设计的基于等都推出了自己设计的基于ARMARM核的处理器。核的处理器。第1页/共135页第二页,共136页。 工业工业(gngy)控制领域:作为控制领域:作为32的的RISC架构,基架构,基于于ARM核的微控制器芯片不但占据了高端微控制核的微控制器芯片不但占据了高端微控制器市场

3、的大部分市场份额,同时也逐渐向低端微器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,控制器应用领域扩展,ARM微控制器的低功耗、微控制器的低功耗、高性价比,向传统的高性价比,向传统的8位位/16位微控制器提出了挑位微控制器提出了挑战。战。1、 ARM技术(jsh)的应用领域及特点q到目前为止,到目前为止,ARM微处理器及技术的应用已经广泛微处理器及技术的应用已经广泛(gungfn)深入到国民经济的各个领域深入到国民经济的各个领域第2页/共135页第三页,共136页。1、 ARM技术(jsh)的应用领域及特点q网络应用:随着网络应用:随着(su zhe)宽带技术的推广,采用宽带技术

4、的推广,采用ARM技技术的术的ADSL芯片正逐步获得竞争优势。此外,芯片正逐步获得竞争优势。此外,ARM在语音及视在语音及视频处理上行了优化,并获得广泛支持,也对频处理上行了优化,并获得广泛支持,也对DSP的应用领域提的应用领域提出了挑战。出了挑战。q消费类电子产品:消费类电子产品:ARM技术在目前流行的数字音频播技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到放器、数字机顶盒和游戏机中得到(d do)广泛采用。广泛采用。q成像和安全产品:现在流行的数码相机和打印机中绝大成像和安全产品:现在流行的数码相机和打印机中绝大部分采用部分采用ARM技术。手机中的技术。手机中的32位位SIM智能

5、卡也采用了智能卡也采用了ARM技术。技术。q全球全球80%的的GSM/3G手机、手机、99%的的CDMA手机以及绝大多手机以及绝大多数数PDA产品均采用产品均采用ARM体系的嵌入式处理器体系的嵌入式处理器第3页/共135页第四页,共136页。采用(ciyng)RISC指令集1、 ARM技术(jsh)的应用领域及特点q低功耗、低成本、高性能低功耗、低成本、高性能使用大量的寄存器ARM/THUMB指令支持三/五级流水线第4页/共135页第五页,共136页。1、 ARM技术(jsh)的应用领域及特点q采用采用RISC架构的架构的ARM处理器一般具有处理器一般具有(jyu)如下特如下特点:点:固定长度

6、的指令格式,指令归整、简单、基固定长度的指令格式,指令归整、简单、基 本寻址方式本寻址方式有有23种;种;使用单周期指令,便于流水线操作执行;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存器进行操作,大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载只有加载/存储指令可以访问存储器,以提高指令的执行存储指令可以访问存储器,以提高指令的执行效率。效率。第5页/共135页第六页,共136页。1、 ARM技术(jsh)的应用领域及特点qARM 处理器共有处理器共有37个寄存器,被分为个寄存器,被分为(fn wi)若干个若干个组,这些寄存器包括:组,这些寄存器包括:31

7、个通用寄存器,包括程序计数器(个通用寄存器,包括程序计数器(PC 指针),指针),均为均为32位的寄存器;位的寄存器;6个状态寄存器,用以标识个状态寄存器,用以标识CPU的工作状态及程序的工作状态及程序的运行状态,均为的运行状态,均为32位。位。第6页/共135页第七页,共136页。1、 ARM技术(jsh)的应用领域及特点qARM微处理器支持微处理器支持(zhch)两种指令集:两种指令集:ARM指令集指令集和和Thumb指令集。指令集。qARM指令为指令为32位的长度,位的长度,Thumb指令为指令为16位长度。位长度。Thumb指令集为指令集为ARM指令集的功能子集,但与等价的指令集的功能

8、子集,但与等价的ARM代码相比较,代码相比较,可节省可节省3040以上的存储空间,同时具备以上的存储空间,同时具备32位代码的所有位代码的所有优点。优点。第7页/共135页第八页,共136页。1、 ARM技术(jsh)的应用领域及特点q除此以外,除此以外,ARM体系结构还采用了一些体系结构还采用了一些(yxi)特别的技特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:q所有的指令都可根据前面的执行结果决定是否被执行,所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。从而提高指令的执行效率。q可用加载可用加

9、载/存储指令批量传输数据,以提高数据的传输效存储指令批量传输数据,以提高数据的传输效率。率。q可在一条数据处理指令中同时完成逻辑处理和移位处可在一条数据处理指令中同时完成逻辑处理和移位处理。理。q在循环处理中使用地址的自动增减来提高运行效率。在循环处理中使用地址的自动增减来提高运行效率。第8页/共135页第九页,共136页。2、ARM微处理器系列(xli)qARM7系列系列(xli)qARM9系列系列qARM9E系列系列qARM10E系列系列qARM11系列系列qIntel的的Xscale第9页/共135页第十页,共136页。3、ARM微处理器的工作(gngzu)状态q 从编程的角度看,从编程

10、的角度看,ARMARM微处理器的工作状态微处理器的工作状态(zhungti)(zhungti)一般有两种,并可在两种状态一般有两种,并可在两种状态(zhungti)(zhungti)之间切换:之间切换:ARM状态,此时处理器执行状态,此时处理器执行32位的字对齐的位的字对齐的ARM指指令;令;Thumb状态,此时处理器执行状态,此时处理器执行16位的、半字对齐的位的、半字对齐的Thumb指令。指令。 第10页/共135页第十一页,共136页。q THUMB指令(zhlng)是ARM指令(zhlng)的子集3、 ARM微处理器的工作(gngzu)状态q可以相互调用,只要遵循(zn xn)一定的调

11、用规则q Thumb指令与ARM指令的时间效率和空间效率关系为:存储空间约为ARM代码的6070指令数比ARM代码多约3040 存储器为32位时ARM代码比Thumb代码快约40存储器为16位时Thumb比ARM代码快约4050 使用Thumb代码,存储器的功耗会降低约30第11页/共135页第十二页,共136页。4、 ARM微处理器的工作(gngzu)模式处理器模式说明备注 用户 (usr)正常程序执行模式不能直接切换到其它模式 系统 (sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中

12、断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护模式系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式第12页/共135页第十三页,共136页。4、 ARM微处理器的工作(gngzu)模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入

13、此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者(huzh)可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (

14、sys)第13页/共135页第十四页,共136页。4、 ARM微处理器的工作(gngzu)模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异

15、常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务(rn wu)可以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)第14页/共135页第十五页,共136页。16处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中

16、断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态(zhungti)不可靠。4、 ARM微处理器的工作(gngzu

17、)模式第15页/共135页第十六页,共136页。qARMARM体系结构所支持体系结构所支持(zhch)(zhch)的最大寻址空间为的最大寻址空间为4GB4GB(232232字字节)节)5、ARM微处理器的存储器格式(g shi)qARMARM体系结构将存储器看作是从零地址开始的字节的线体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。据,依次排列。qARMARM体系结构可以用两种方法存储字数据,称之为大端

18、体系结构可以用两种方法存储字数据,称之为大端格式和小端格式格式和小端格式 第16页/共135页第十七页,共136页。5、 ARM微处理器的存储器格式(g shi)q 在这种格式中,字数据的高字节存储在低地址在这种格式中,字数据的高字节存储在低地址(dzh)(dzh)中,而字数据的低字节则存放在高地址中,而字数据的低字节则存放在高地址(dzh)(dzh)中中第17页/共135页第十八页,共136页。5、 ARM微处理器的存储器格式(g shi)q与大端存储与大端存储(cn ch)(cn ch)格式相反,在小端存储格式相反,在小端存储(cn ch)(cn ch)格格式中,低地址中存放的是字数据的低

19、字节,高地址存放的式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节是字数据的高字节第18页/共135页第十九页,共136页。20 一个基于ARM内核的芯片可以只支持大端模式或小端模式,也可以两者都支持。通常,小端模式是ARM处理器的默认形式。 在ARM指令集中不包含任何直接选择(xunz)大小端的指令,但是一个同时支持大小端模式的ARM芯片可以通过硬件配置(一般使用芯片的引脚来配置)来匹配存储器系统所使用的规则。注意:如果实际的存储器格式与芯片的存储器格式不符时,只有以字为单位的数据存取才正确,否则将出现(chxin)不可预期的结果。5、 ARM微处理器的存储器格式(g sh

20、i)第19页/共135页第二十页,共136页。q ARMARM微处理器的指令长度可以微处理器的指令长度可以(ky)(ky)是是3232位(在位(在ARMARM状态状态下),也可以下),也可以(ky)(ky)为为1616位(在位(在ThumbThumb状态下)。状态下)。5、 ARM微处理器的存储器格式(g shi)q ARMARM微处理器中支持字节(微处理器中支持字节(8 8位)、半字(位)、半字(1616位)、字(位)、字(3232位)三种数据类型,其中,字需要位)三种数据类型,其中,字需要4 4字节对齐(地址的低两字节对齐(地址的低两位为位为0 0)、半字需要)、半字需要2 2字节对齐(地

21、址的最低位为字节对齐(地址的最低位为0 0)q 基于基于ARMARM内核的芯片具有许多的外设,这些外设访问的标准方内核的芯片具有许多的外设,这些外设访问的标准方法是使用存储器映射的法是使用存储器映射的I/OI/O,为外设的每个寄存器都分配一,为外设的每个寄存器都分配一个地址。通常,从这些地址装载数据用于读入,向这些个地址。通常,从这些地址装载数据用于读入,向这些地址保存数据用于输出。有些地址的装载和保存用于外地址保存数据用于输出。有些地址的装载和保存用于外设的控制功能,而不是输入或输出功能。设的控制功能,而不是输入或输出功能。第20页/共135页第二十一页,共136页。都是可访问的。都是可访问

22、的。6、ARM微处理器的寄存器格式(g shi)第21页/共135页第二十二页,共136页。q通用寄存器:通用寄存器包括R0R15,可以(ky)分为三类: 未分组寄存器未分组寄存器R0R0R7R7 分组寄存器分组寄存器R8R8R14R14 程序程序(chngx)(chngx)计数器计数器PC(R15)PC(R15)6、 ARM微处理器的寄存器格式第22页/共135页第二十三页,共136页。6、 ARM微处理器的寄存器格式(g shi)寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(

23、a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq *R9(SB,v6)R9R9_fiq *R10(SL,v7)R10R10_fiq *R11(FP,v8)R11R11_fiq *R12(IP)R12R12_fiq *R13(SP)R13R13_svc*R13_abt *R13_und *R13_irq *R13_fiq *R14(LR)R14R14_svc *R14_abt *R14_und *R14_irq *R14_fiq *R15(PC)R15状态寄存器R16(CPSR)CPSRSPSR无SPSR_abtSPSR_abtSPSR_un

24、dSPSR_irqSPSR_fiq第23页/共135页第二十四页,共136页。25寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R

25、14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态(zhungti)各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6

26、R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用(tngyng)32位寄存器;6个状态寄存器。第24页/共135页第二十五页,共136页。26寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_

27、svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理

28、SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式(msh)下可以访问的寄存器第25页/共

29、135页第二十六页,共136页。27寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_und

30、R14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般(ybn)的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途(yngt),并且可用于任何使用通用寄存器的指令。第26页/共135页第二十七页,共136页。28

31、寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(

32、PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般(ybn)的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式(msh),这些寄存器都对应于相同的32位物理寄存器。第27页/共135页第二十八页,共136页。29寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器

33、用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPS

34、R_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般(ybn)的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎(jh)所有允许使用通用寄存器的指令都允许使用分组寄存器第28页/共135页第二十九页,共136页。30寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止

35、未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPS

36、R_abtSPSR_undSPSR_irqSPSR_fiq一般(ybn)的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样(zhyng)在发生FIQ中断后,可以加速FIQ的处理速度。第29页/共135页第三十页,共136页。31寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6

37、(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般(ybn)的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。一个

38、用于用户和系统模式,其余(qy)5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13第30页/共135页第三十一页,共136页。32寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR1

39、1(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈(duzhn)指针寄存器R13(SP) 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中(jzhng)存在使用R1

40、3的指令。第31页/共135页第三十二页,共136页。33寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14

41、_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq链接(lin ji)寄存器R14(LR) R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个(y )小的固定偏移量)。第32页/共135页第三十三页,共136页。34Lable程序A程序BR14BL Lable地址A?MOV PC,LRR14(地址(dzh)A)Lable?1.程

42、序A执行(zhxng)过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14(LR);3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;第33页/共135页第三十四页,共136页。35寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R

43、10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序(chngx)计数器R15(PC) 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出

44、了这些限制,那么(n me)结果将是不可预测的。第34页/共135页第三十五页,共136页。36寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR

45、14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序(chngx)状态寄存器CPSR 寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存(bocn)寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存(bocn)CPSR的当前值,异常退出时可通过它恢复CPSR。第35页/共135页第三十六页,共136页。37NZCV IM0M1M2M3M4TF. . .31 30 29

46、28 27 26 8 7 6 5 4 3 2 1 0条件(tiojin)代码标志保留(boli)控制(kngzh)位溢出标志 oVerflow进位或借位扩展 Carry零 Zero负或小于 NegativeIRQ禁止 InterruptFIQ禁止 Fast状态位 Thumb模式位 ModeNZCVIM0M1M2M3M4TFCPSR寄存器的格式第36页/共135页第三十七页,共136页。标志位含 义N当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零;ZZ=1 表示运算的结果为零;Z=0表示运算的结果为非零;C加法运算结果进位时,C=1,减法运算

47、借位时,C=0;移位操作的非加/减运算指令,C为移出的最后一位;其他的非加/减运算指令,C的值通常不改变。V加/减法运算指令,V=1表示符号位溢出。对于其他的非加/减运算指令,C的值通常不改变。6、 ARM微处理器的寄存器格式(g shi)第37页/共135页第三十八页,共136页。6、 ARM微处理器的寄存器格式(g shi)q中断禁止位中断禁止位I I、F F:I=1 I=1 禁止禁止IRQIRQ中断中断; ;F=1 F=1 禁止禁止FIQFIQ中断。中断。qT T标志位:该位反映处理器的运行状态标志位:该位反映处理器的运行状态ARMARM体系结构体系结构v5v5及以上的版本的及以上的版本

48、的T T系列处理器,当该位系列处理器,当该位为为1 1时,程序运行于时,程序运行于ThumbThumb状态,否则运行于状态,否则运行于ARMARM状态。状态。ARMARM体系结构体系结构v5v5及以上的版本的非及以上的版本的非T T系列处理器,当该位系列处理器,当该位为为1 1时,执行下一条指令以引起为定义的指令异常;当该时,执行下一条指令以引起为定义的指令异常;当该位为位为0 0时,表示运行于时,表示运行于ARMARM状态。状态。q运行模式位运行模式位M4M4:00是模式位,决定处理器的运行模式是模式位,决定处理器的运行模式 第38页/共135页第三十九页,共136页。M4:0处理器模式处理

49、器模式可访问的寄存器可访问的寄存器0b10000用户模式用户模式PC,CPSR,R0-R140b10001FIQ模式模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R00b10010IRQ模式模式PC,CPSR, SPSR_irq,R14_irq, R13_irq, R12R00b10011管理模式管理模式PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R0,0b10111中止模式中止模式PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12R0,0b11011未定义模式未定义模式PC,CPSR, SPSR_und

50、,R14_und, R13_und, R12R0,0b11111系统模式系统模式PC,CPSR(ARM v4及以上版本)及以上版本), R14R06、 ARM微处理器的寄存器格式(g shi)第39页/共135页第四十页,共136页。6、 ARM微处理器的寄存器格式(g shi)第40页/共135页第四十一页,共136页。7、ARM异常(ychng)处理q ARMARM体系结构中的异常,与体系结构中的异常,与8 8位位/16/16位体系结构的中断有很位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。大的相似之处,但异常与中断的概念并不完全等同。 第41页/共135页第四十二页,

51、共136页。异常类型具体含义复位复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行。未定义指令遇到不能处理的指令时,产生未定义指令异常。软件中断执行SWI指令产生,用于用户模式下的程序调用特权操作指令。指令预取中止处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常。数据中止处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。IRQ外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常。FIQ快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常。7、ARM异常(ychng)处理第42页/共135页第四十三页,共136页。

52、44程序AIRQ服务程序系统模式IRQ模式程序寄存器组图示进入异常(ychng)过程1. 程序在系统模式下运行用户程序,假定当前处理器状态(zhungti)为Thumb状态(zhungti)、允许IRQ中断;用户程序运行时发生(fshng)IRQ中断,硬件完成以下动作:LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?MODTFI. . .N Z C V置位I位(禁止IRQ中断)清零T位(进入ARM状态)设置MOD位,切换处理器模式至IRQ模式将下一条指令的地址存入IRQ模式的LR寄存器将CPSR寄存器内容存入IRQ模式的SPSR寄存器将跳转地

53、址存入PC,实现跳转IRQ0?1. . .? ? ? ?BackAddrJumpAddrJumpSYS1?0. . .?“?”表示对该位不关心第43页/共135页第四十四页,共136页。45在异常处理结束(jish)后,异常处理程序完成以下动作:程序AIRQ服务程序系统模式IRQ模式程序寄存器组图示退出(tuch)异常过程LR_sysSPSR_irqLR_irqLRPCCPSRSPSRSYS1?0. . .? ? ? ?MODTFI. . .N Z C V将SPSR寄存器的值复制(fzh)回CPSR寄存器;将LR寄存的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。IRQ0?1. .

54、 .? ? ? ?BackAddrJumpAddrreturnSYS1?0. . .?SYS1?0. . .? ? ? ?BackAddr-4Jump“?”表示对该位不关心第44页/共135页第四十五页,共136页。地地 址址异异 常常进入模式进入模式0 x0000,0000 x0000,0000 0复位复位管理模式管理模式0 x0000,0000 x0000,0004 4未定义指令未定义指令未定义模式未定义模式0 x0000,0000 x0000,0008 8软件中断软件中断管理模式管理模式0 x0000,0000 x0000,000C C中止(预取指令)中止(预取指令)中止模式中止模式0

55、x0000,0010 x0000,0010 0中止(数据)中止(数据)中止模式中止模式0 x0000,0010 x0000,0014 4保留保留保留保留0 x0000,0010 x0000,0018 8IRQIRQIRQIRQ0 x0000,0010 x0000,001C CFIQFIQFIQFIQ7、 ARM异常(ychng)处理第45页/共135页第四十六页,共136页。优先级优先级异异 常常1 1(最高)(最高)复位复位2 2数据中止数据中止3 3FIQFIQ4 4IRQIRQ5 5预取指令中止预取指令中止6 6(最低)(最低)未定义指令、未定义指令、SWISWI7、 ARM异常(ych

56、ng)处理第46页/共135页第四十七页,共136页。处理完成以后,返回到主程序处理完成以后,返回到主程序继续执行。继续执行。n我们需要处理所有的异常,尽我们需要处理所有的异常,尽管我们可以简单管我们可以简单(jindn)(jindn)的在的在某些异常处理程序处放置死循某些异常处理程序处放置死循环。环。7、 ARM异常(ychng)处理第47页/共135页第四十八页,共136页。49提纲(tgng)ARM 微处理器指令(zhlng)的分类ARM 微处理器指令(zhlng)的寻址方式ARM 微处理器指令的条件域第48页/共135页第四十九页,共136页。50nn数据处理指令数据处理指令n程序状态

57、寄存器(程序状态寄存器(PSR)处理)处理指令指令n加载加载/存储指令存储指令n协处理器指令和异常协处理器指令和异常(ychng)产生指令产生指令ARM微处理器指令(zhlng)的分类第49页/共135页第五十页,共136页。51助记符助记符指令功能描述指令功能描述ADCADC带进位加法指令带进位加法指令ADDADD加法指令加法指令ANDAND逻辑与指令逻辑与指令B B跳转指令跳转指令BICBIC位清零指令位清零指令BLBL带返回的跳转指令带返回的跳转指令BLXBLX带返回和状态切换的跳转指令带返回和状态切换的跳转指令BXBX带状态切换的跳转指令带状态切换的跳转指令ARM微处理器指令(zhln

58、g)的分类第50页/共135页第五十一页,共136页。52助记符助记符指令功能描述指令功能描述CDPCDP协处理器数据操作指令协处理器数据操作指令CMNCMN比较反值指令比较反值指令CMPCMP比较指令比较指令EOREOR异或指令异或指令LDCLDC存储器到协处理器的数据传输指令存储器到协处理器的数据传输指令LDMLDM加载多个寄存器指令加载多个寄存器指令LDRLDR存储器到寄存器的数据传输指令存储器到寄存器的数据传输指令MCRMCRARMARM寄存器到协处理器寄存器数据传输寄存器到协处理器寄存器数据传输ARM微处理器指令(zhlng)的分类第51页/共135页第五十二页,共136页。53助记

59、符助记符指令功能描述指令功能描述MLAMLA乘加运算指令乘加运算指令MOVMOV数据传送指令数据传送指令MRCMRC协处理器寄存器到协处理器寄存器到ARMARM寄存器数据传输寄存器数据传输MRSMRS传送传送CPSRCPSR或或SPSRSPSR的内容到通用寄存器的内容到通用寄存器MSRMSR传送通用寄存器到传送通用寄存器到CPSRCPSR或或SPSRSPSR的指令的指令MULMUL3232位乘法指令位乘法指令MLAMLA3232位乘加指令位乘加指令MVNMVN数据取反传送指令数据取反传送指令ARM微处理器指令(zhlng)的分类第52页/共135页第五十三页,共136页。54助记符助记符指令功

60、能描述指令功能描述ORRORR逻辑或指令逻辑或指令RSBRSB逆向减法指令逆向减法指令RSCRSC带借位的逆向减法指令带借位的逆向减法指令SBCSBC带借位减法指令带借位减法指令STCSTC协处理器寄存器写入存储器指令协处理器寄存器写入存储器指令STMSTM批量内存字写入指令批量内存字写入指令STRSTR寄存器到存储器的数据传输指令寄存器到存储器的数据传输指令SUBSUB减法指令减法指令ARM微处理器指令(zhlng)的分类第53页/共135页第五十四页,共136页。55助记符助记符指令功能描述指令功能描述SWISWI软件中断指令软件中断指令SWPSWP交换指令交换指令TEQTEQ相等测试指令

61、相等测试指令TSTTST位测试指令位测试指令ARM微处理器指令(zhlng)的分类第54页/共135页第五十五页,共136页。56变为变为BEQBEQ表示表示“相等则跳转相等则跳转”,即当,即当CPSRCPSR中中的的Z Z标志置位时发生跳转。标志置位时发生跳转。ARM微处理器指令(zhlng)的条件域第55页/共135页第五十六页,共136页。57条件码后缀标 志含 义0000EQZ置位相等0001NEZ清零不相等0010CSC置位无符号数大于或等于0011CCC清零无符号数小于0100MIN置位负数0101PLN清零正数或零0110VSV置位溢出0111VCV清零未溢出ARM微处理器指令(

62、zhlng)的条件域第56页/共135页第五十七页,共136页。58条件码后缀标 志含 义1001LSC清零Z置位无符号数小于或等于1010GEN等于V带符号数大于或等于1011LTN不等于V带符号数小于1100GTZ清零且(N等于V)带符号数大于1101LEZ置位或(N不等于V)带符号数小于或等于1110AL忽略无条件执行ARM微处理器指令(zhlng)的条件域第57页/共135页第五十八页,共136页。59ARM微处理器指令(zhlng)的寻址方式第58页/共135页第五十九页,共136页。60n ADD ADD R0R0,R0R0,0 x3f0 x3f/ /* *R0R0R0R00 x3

63、f0 x3f* */ /n在以上两条指令中,第二个源在以上两条指令中,第二个源操作数即为立即数,要求操作数即为立即数,要求(yoqi)(yoqi)以以“”为前缀,对为前缀,对于以十六进制表示的立即数,于以十六进制表示的立即数,还要求还要求(yoqi)(yoqi)在在“”后加后加上上“0 x”“0 x”。ARM微处理器指令(zhlng)的寻址方式0 x55R0MOV R0,#0 xFF00程序存储MOV R0,#0 xFF000 xFF00从代码中获得数据第59页/共135页第六十页,共136页。61n该指令的执行效果是将寄存器该指令的执行效果是将寄存器R1R1和和R2R2的内容相加,其结果存的

64、内容相加,其结果存放在寄存器放在寄存器R0R0中。中。ARM微处理器指令(zhlng)的寻址方式0 xAA0 x55R2R1MOV R1,R20 xAA第60页/共135页第六十一页,共136页。62n在第一条指令中,以寄存器在第一条指令中,以寄存器R2R2的值作为操作数的地址,在存的值作为操作数的地址,在存储器中取得一个操作数后与储器中取得一个操作数后与R1R1相加,结果存入寄存器相加,结果存入寄存器R0R0中中; ;n第二条指令将以第二条指令将以R1R1的值为地址的值为地址的存储器中的数据传送到的存储器中的数据传送到R0R0中。中。n第三条指令将第三条指令将R0R0的值传送到以的值传送到以

65、R1R1的值为地址的存储器中。的值为地址的存储器中。ARM微处理器指令(zhlng)的寻址方式0 x55R0R2 0 x400000000 xAA0 x40000000LDR R0,R20 xAA第61页/共135页第六十二页,共136页。63ARM微处理器指令(zhlng)的寻址方式0 x55R2R3 0 x400000000 xAA0 x4000000CLDR R2,R3,#0 x0C0 xAA将R3+0 x0C作为地址装载数据第62页/共135页第六十三页,共136页。64n该指令的后缀IA表示(biosh)在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将连续存储单元的值传

66、送到R1R4。ARM微处理器指令(zhlng)的寻址方式0 x40000000R1R2 0 x?0 x010 x400000000 x?R3R4 0 x?R6 0 x?0 x020 x030 x040 x400000040 x400000080 x4000000C存储器LDR R1!,R2-R4,R6 0 x010 x020 x030 x040 x40000010第63页/共135页第六十四页,共136页。65nnMOVPC,LR;从子程序(chngx)返回ARM微处理器指令(zhlng)的寻址方式第64页/共135页第六十五页,共136页。66ARM微处理器指令(zhlng)的寻址方式栈底栈顶栈区SP堆栈存储区栈顶栈底栈区SP向下增长向上增长0 x123456780 x12345678堆栈压栈堆栈压栈第65页/共135页第六十六页,共136页。67q当堆栈指针指向最后压入堆栈的数据(shj)时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据(shj)的空位置时,称为空堆栈(Empty Stack)。 栈顶SP栈顶SP栈底空堆栈栈底满堆栈0 x123456780

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!