版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章ARM/THUMB微处理器结构及指令系统第2章ARM/THUMB微处理器结构及指令系统1本章主要内容:(1)ARM/Thumb及相关技术简介(2)ARM/Thumb微处理器的应用领域及特点(3)ARM/Thumb微处理器系列(4)ARM/Thumb微处理器的结构(5)ARM/Thumb指令系统本章主要内容:2
第二章目录1ARM微处理器概述
1.1ARM处理器系列1.2RISC体系结构
1.3ARM和Thumb状态1.4寄存器
1.5ARM指令集概述1.6Thumb指令集概述2ARM微处理器体系结构
2.1数据类型
2.2ARM微处理器的工作状态
2.3
ARM体系结构的存储器格式2.4处理器模式
2.5寄存器组织2.6异常3
ARM/Thumb指令系统3.1处理器寻址方式3.2指令集介绍
3.3指令集介绍第二章目录1ARM微处理3※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍
第二章目录※1ARM微处理器概述※2ARM微处理器体系结构※341ARM微处理器概述ARM简介:
ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,ARM1ARM微处理器概述ARM简介:A5ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯片...ARM公司简介将技术授权给其它芯片厂商形成各具特色的ARM芯6
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处7ARM处理器核简介ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscale
1.1ARM处理器系列
ARM处理器核简介ARM公司开发了很多系列的8ARM处理器核简介——ARM7该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。Jazelle是ARM体系结构的一种相关技术,用于在处理器指令层次对JAVA加速ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。
1.1ARM处理器系列
ARM处理器核简介——ARM7该系列包括AR9ARM处理器核简介——ARM9该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。
1.1ARM处理器系列
ARM处理器核简介——ARM9该系列包括AR10ARM处理器核简介——ARM10该系列包括ARM1020E和ARM1022E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。可以用于视频游戏机和高性能打印机等场合。
1.1ARM处理器系列
ARM处理器核简介——ARM10该系列包括A11ARM处理器核简介——SecurCore该系列涵盖了SC100、SC110、SC200和SC210处理核。该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。
1.1ARM处理器系列
ARM处理器核简介——SecurCore该系12ARM处理器核简介——XscaleIntelXscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。
1.1ARM处理器系列
ARM处理器核简介——XscaleIntel13
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处141.2RISC体系结构●RISC特点如下:精简指令集计算机RISC结构的产生是相对于传统的复杂指令集计算机CISC结构而言的。1.2RISC体系结构●RISC特点如下:精151.2RISC体系结构■指令规整、对称、简单。指令小于100条,基本寻址方式有2~3种。■单周期指令。■指令字长度一致,单拍完成,便于流水操作;■
ARM7三级流水线:取指、译码、执行;■
ARM9五级流水线;■
ARMl0六级流水线。■大量的寄存器。寄存器不少于32个。数据处理器的指令只对寄存器的内容操作。只有加载/存储指令可以访问存储器。●RISC特点如下:1.2RISC体系结构■指令规整、对称、简单。指令小16
第二章目录※1ARM微处理器概述
●ARM处理器系列●RISC体系结构
●ARM和Thumb状态
●寄存器●ARM指令集概述●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处171.3ARM和Thumb状态Thumb指令集的功能是32位ARM指令集的功能子集。Thumb在性能和代码大小之间提供了出色的折中。正在执行Thumb指令集的处理器是工作在Thumb状态下。正在执行ARM指令集的处理器是工作在ARM状态下。1.3ARM和Thumb状态Thumb指令集的功能是32位18
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处191.4.寄存器
ARM处理器有37(31+6)个物理寄存器,有18个可编程访问的寄存器。寄存器被安排成部分重叠的组。每种处理器模式都有不同的寄存器组。分组的寄存器在异常处理和特权操作时,可得到快速的上下文切换。1.4.寄存器ARM处理器有37(31+6)个物理寄存器20
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处21数据处理指令
加载和存储指令分支指令协处理器指令杂项指令ARM指令集
1.5ARM指令集概述ARM指令集可分为5大类指令,所有指令都可以条件执行,其中一些指令还可以根据执行结果更新CPSR寄存器的相关标志位:数据处理指令加载和存储指令ARM指令集22
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处23Thumb指令集可分为4大类指令:分支指令;数据处理指令;寄存器加载和存储指令;异常产生指令。Thumb指令集
1.6Thumb指令集概述
Thumb指令集可分为4大类指令:Thumb24
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处25上节内容回顾:ARM—公司名称、微处理器名称和嵌入式技术名称;特点—高性能、小体积、低功耗、紧代码密度、多供应商、高占有率;系列—ARM7、ARM9(E)、ARM10、Xscale、StrongARM和SecurCore等;结构—两种CPU工作状态、32位RISC结构、多寄存器、多处理器模式、两种指令集;上节内容回顾:ARM—公司名称、微处理器名称和嵌入式技术名称26教学内容:ARM处理器体系结构●数据类型●ARM微处理器的工作状态●ARM体系结构的存储器格式●处理器模式●寄存器组织●异常教学内容:ARM处理器体系结构●数据类型27体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节8位半字16位(必须分配为占用两个字节)字32位(必须分配为占用4各字节)1112342
2.1数据类型体系结构直接支持的数据类型ARM处理器支持下列数据类型:1128
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式●处理器模式●寄存器组织●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处292.2ARM微处理器的工作状态
ARM微处理器的工作状态一般有两种:ARM状态—处理器执行32位的字对齐的ARM指令;Thumb状态—处理器执行16位的、半字对齐的Thumb指令。2.2ARM微处理器的工作状态ARM微处理器的工作状态一30处理器状态切换进入Thumb状态:当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理返回时,自动转换到Thumb状态。进入ARM状态。当操作数寄存器的状态位(位[0])为0时执行BX指令进入ARM状态。当处理器进行异常处理是时,进入ARM状态从异常向量地址处开始执行。处理器状态切换进入Thumb状态:进入ARM状态。31处理器状态切换使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换,程序如下所示。;从Arm状态切换到Thumb状态LDRR0,=Lable+1BXR0;从Thumb状态切换到ARM状态LDRR0,=LableBXR0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号2.2ARM微处理器的工作状态
处理器状态切换使用BX指令将ARM7TDMI32
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态
●ARM体系结构的存储器格式
●处理器模式●寄存器组织●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处332.3ARM体系结构的存储器格式
ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。
3124231615870位小端模式byte3byte2byte1byte0字地址
8402.3ARM体系结构的存储器格式ARM体系342.3ARM体系结构的存储器格式
ARM体系结构可以用两种方法存储字数据,称为大端格式和小端格式。3124231615870位大端模式字地址
840byte0byte1byte2byte32.3ARM体系结构的存储器格式ARM体系35
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态●ARM体系结构的存储器格式
●处理器模式
●寄存器组织●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处36简介ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。2.2.4处理器模式
简介ARM体系结构支持7种处理器模式,分别为37处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式处理器模式2.2.4处理器模式
处理器模式说明备注用户(usr)正常程序工作模式不能38特权模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)系统(sys)2.2.4处理器模式
特权模式处理器模式说明备注用户(usr)正39异常模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。2.2.4处理器模式
异常模式处理器模式说明备注用户(usr)正40用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。系统(sys)用户(usr)2.2.4处理器模式
用户和系统模式处理器模式说明备注用户(us41处理器启动时的模式转换图管理模式SVC(Supervisor)多种特权模式变化用户程序的运行模式复位后缺省模式主要完成各模式的堆栈设置,注意不要进入用户模式一般为用户模式User处理器启动时的模式转换图管理模式SVC多种特权模式变化用户程42
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态●ARM体系结构的存储器格式●处理器模式
●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处43简介2.5寄存器组织ARM处理器有37(31+6)个物理寄存器,有18个可编程访问的寄存器。寄存器被安排成部分重叠的组。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。分组的寄存器在处理处理器异常和特权操作时可得到快速的上下文切换。简介2.5寄存器组织ARM处理器有37(31+6)个物理寄44寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系45寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系46寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断ARM状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系47寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系48寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系49寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系50寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系51寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系52寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆栈指针寄存器R13(SP)寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系53寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq链接寄存器R14(LR)R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系54Lable程序A程序BR14R14寄存器与子程序调用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BLLable”指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;2.5寄存器组织Lable程序A程序BR14R14寄存器与子程序调用BL55R14寄存器与异常发生异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。2.5寄存器组织R14寄存器与异常发生异常发生时,程序要跳转56R14寄存器注意要点当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。2.5寄存器组织R14寄存器注意要点当发生异常嵌套时,这些异57R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB...XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏R14寄存器注意要点R14R14_irq用户模式下的程序IR58R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB...XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB...XA地址B地址B4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;被破坏6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。2.5寄存器组织R14寄存器注意要点R14R14_irq用户模式下的程序IR59寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序计数器R15(PC)寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系60读R15的限制正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。LDRR0,PC??????PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码2.5寄存器组织读R15的限制正常操作时,从R15读取的值是61读R15的限制当使用STR或STM指令保存R15时,会有一个例外。这些指令可能将当前指令地址加8字节或加12字节保存(将来可能还有其它数字)。偏移量是8还是12取决于具体的ARM芯片,但是对于一个确定的芯片,这个值是一个常量。所以最好避免使用STR和STM指令来保存R15,如果很难做到,那么应当在程序中计算出该芯片的偏移量。2.5寄存器组织读R15的限制当使用STR或STM指令保存R62读R15的限制计算偏移量程序代码:SUB R1,PC,#4 ;R1=下面STR指令的地址STR PC,[R0] ;保存STR指令地址+偏移量LDR R0,[R0] ;然后重装SUB R0,R0,R1 ;计算偏移量2.5寄存器组织读R15的限制计算偏移量程序代码:SUB R1,PC,#4 63写R15的限制
正常操作时,写入R15的值被当作一个指令地址,程序从这个地址处继续执行(相当于执行一次无条件跳转)。2.5寄存器组织写R15的限制正常操作时,写入R15的值被64写R15的限制
由于ARM指令以字节为边界,因此写入R15的值最低两位通常为0b00。具体的规则取决于内核结构的版本:在ARM结构V3版及以下版本中,写入R15的值的最低两位被忽略,因此跳转地址由指令的实际目标地址(写入R15的值)和0xFFFFFFFC相与得到;在ARM结构V4版及以上版本中,写入R15的值的最低两位为0,如果不是,结果将不可预测。2.5寄存器组织写R15的限制由于ARM指令以字节为边界,因65寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序状态寄存器CPSR寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在因为异常事件而进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系66Thumb状态寄存器Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0~R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);有条件访问程序状态寄存器(CPSR)。2.5寄存器组织Thumb状态寄存器Thumb状态寄存器集是67Thumb状态各模式下的寄存器CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别注意:括号内为ATPCS中寄存器的命名,可以使用RN汇编伪指令将寄存器定义多个名字。其中ADS1.2的汇编程序直接支持这些名称,但注意a1~a4,v1~v4必须用小写。Thumb状态各模式下的寄存器CPSRCPSR状态寄存器R168Thumb状态下的通用寄存器CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别R7R6R5R4R3R2R1R0在汇编语言中寄存器R0~R7为保存数据或地址值的通用寄存器。对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊的用途,并且可用于任何使用通用寄存器的指令。Thumb状态下的通用寄存器CPSRCPSR状态寄存器R1569Thumb状态下的堆栈指针寄存器(SP)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。
注意:在发生异常时,处理器自动进入ARM状态。R13_fiqR13_irqR13_undR13_abtR13_svcR13Thumb状态下的堆栈指针寄存器(SP)CPSRCPSR状态70Thumb状态下的链接寄存器R14(LR)CPSRCPSR状态寄存器R15PCR14_fiqR14_irqR14_undR14_abtR14_svcR14LRR13_fiqR13_irqR13_undR13_abtR13_svcR13SPR7R7(v4,wr)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)通用寄存器和程序计数器快中断中断未定义中止管理系统用户各模式下实际访问的寄存器寄存器在汇编中的名称寄存器类别链接寄存器LR对应ARM状态寄存器R14,在结构上有两个特殊功能,详见“ARM状态下的链接寄存器LR”。
注意:在发生异常时,处理器自动进入ARM状态。R14_fiqR14_irqR14_undR14_abtR14_svcR14Thumb状态下的链接寄存器R14(LR)CPSRCPSR状71ARM状态和Thumb状态之间寄存器的关系Thumb状态R0~R7与ARM状态R0~R7相同;Thumb状态CPSR和SPSR与ARM状态CPSR和SPSR相同;Thumb状态SP映射到ARM状态R13;Thumb状态LR映射到ARM状态R14;Thumb状态PC映射到ARM状态PC(R15)。2.5寄存器组织ARM状态和Thumb状态之间寄存器的关系Thumb状态R072Thumb状态寄存器在Arm状态寄存器上的映射R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R0
堆栈指针(R13)
连接寄存器(R14)
程序计数器(R15)
低寄存器高寄存器Thumb状态寄存器在Arm状态寄存器上的映射R1R2R73在Thumb状态中访问高寄存器
在Thumb状态中,高寄存器(R8~R15)不是标准寄存器集的一部分。汇编语言程序员对它们的访问受到限制,但可以将它们用于快速暂存。可以使用MOV、CMP和ADD指令对高寄存器操作。2.5寄存器组织在Thumb状态中访问高寄存器在Thumb74程序状态寄存器—CPSR(1)+SPSR(5)2.5寄存器组织CPSR反映了当前处理器的状态:4个条件代码标志;2个中断控制位;
5个对当前处理器模式进行编码的位;1个指示当前执行指令的工作状态位;保留位。SPSR:备份程序状态字,保存异常事件发生之前的CPSR.每个异常模式带有一个备份程序状态寄存器,用于保存在异常事件发生之前的CPSR;CPSR和SPSR通过特殊指令进行访问。程序状态寄存器—CPSR(1)+SPSR(5)2.5寄存器75程序状态寄存器NZCV——IM0M1M2M3M4TF—...313029282726876543210条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVITFCPSR寄存器的格式
大多数“数值处理指令”可以选择是否影响条件代码标志位(指令带S后缀);但有些指令执行总是影响条件代码标志。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。
运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0;
指令结果为0时Z=1(表示比较结果“相等”),否则Z=0;
当进行加法运算,并且最高位产生进位时C=1,否则C=0。当进行减法运算,并且最高位产生借位时C=0,否则C=1。对于移位操作指令,C为从最高位最后移出的值,其它指令C通常不变;当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。
最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。
保留位被保留将来使用。为了提高程序的可移植性,当改变CPSR标志和控制位时,请不要改变这些保留位。另外,请确保您程序的运行不受保留位的值影响,因为将来的处理器可能会将这些位设置为1或者0。
程序状态寄存器NZCV——IM0M1M2M3M4TF—..76CPSR模式位设置表M[4:0]模式M[4:0]模式10000用户10111中止10001快中断11011未定义10010中断11111系统10011管理注意:不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。CPSR模式位设置表M[4:0]模式M[4:0]模式100077
第二章目录※1ARM微处理器概述
●ARM处理器系列
●RISC体系结构
●ARM和Thumb状态
●寄存器
●ARM指令集概述
●Thumb指令集概述※2ARM微处理器体系结构
●数据类型
●ARM微处理器的工作状态●ARM体系结构的存储器格式●处理器模式●寄存器组织
●异常※3
ARM/Thumb指令系统
●处理器寻址方式
●指令集介绍
●指令集介绍第二章目录※1ARM微处78简介只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常,详见“异常优先级”部分。2.6异常简介只要正常的程序流被暂时中止,处理器就进入79异常处理器模式异常类型模式正常地址复位管理0x00000000未定义指令未定义0x00000004软件中断(SWI)管理0x00000008预取中止(取指令存储器中止)中止0x0000000C数据中止(数据访问存储器中止)中止0x00000010IRQ(中断)IRQ0x00000018FIQ(快速中断)FIQ0x0000001C异常处理器模式异常类型模式正常地址复位管理0x000000080异常的入口和出口处理
如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。SUBLR,LR,#4 ;计算返回地址STMFDSP!,{R0-R3,LR};保存使用到的寄存器...LDMFDSP!,{R0-R3,PC}^ ;中断返回中断处理代码的开始部分和退出部分2.6异常异常的入口和出口处理如果异常处理程序已经把返回地址81如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。中断处理代码的开始部分和退出部分异常的入口和出口处理SUBLR,LR,#4 ;计算返回地址STMFDSP!,{R0-R3,LR} ;保存使用到的寄存器...LDMFDSP!,{R0-R3,PC}^ ;中断返回注意:中断返回指令的寄存器列表(其中必须包括PC)后的“^”符号表示这是一条特殊形式的指令。这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复。这里使用的堆栈指针SP(R13)是属于异常模式的寄存器,每个异常模式有自己的堆栈指针。这个堆栈指针应必须在系统启动时初始化。2.6异常如果异常处理程序已经把返回地址拷贝到堆栈,那么可以82进入异常在异常发生后,ARM7TDMI内核会作以下工作:1.在适当的LR中保存下一条指令的地址,当异常入口来自:ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中;为Thumb状态,那么ARM7TDMI将当前指令地址加4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。2.6异常进入异常在异常发生后,ARM7TDMI内核会作以下工作:1.83进入异常在异常发生后,ARM7TDMI内核会作以下工作:2.将CPSR复制到适当的SPSR中;3.将CPSR模式位强制设置为与异常类型相对应的值;4.强制PC从相关的异常向量处取指。2.6异常进入异常在异常发生后,ARM7TDMI内核会作以下工作:2.84ARM7TDMI内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025购物中心租赁合同样本
- 2025公寓买卖合同范本
- 2025年低空经济背景下无人机租赁行业盈利模式与共享经济协同发展报告
- 2025年短视频仓储租赁合同协议
- 2025年短视频MCN机构合作合同协议(流量签约)
- 2025年元宇宙虚拟教育合作资源整合模式创新支付方式
- 2025年成人英语口语商务培训行业课程开发与学习效果关联研究报告
- 恒星形成区分子分布-洞察与解读
- 2025年消防器材采购行业合规标准更新深度报告
- 开业会员营销方案
- 《高等数学基础》课件-第四章 导数的应用(含课程思政元素)
- 活动现场广告安装安全措施
- 《全国医疗服务价格项目规范》(2021版)
- 流行性感冒诊疗方案(2025年版)
- 《振动信号处理》课件
- 2025版企业股权激励计划实施细则(限制性股权)6篇
- 混凝土芯样抗压强度试验报告自动计算模板
- TSG 07-2019电梯安装修理维护质量保证手册程序文件制度文件表单一整套
- 企业组织架构调整与优化方案
- 【MOOC】中医与辨证-暨南大学 中国大学慕课MOOC答案
- 2024年汽车品牌代理授权书3篇
评论
0/150
提交评论