




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章ARM体系结构主要内容1324ARM体系结构概述编程模型ARM基本寻址方式ARM指令集5ARM9TDMI内核6ARM9与ARM7的比较ARM920T核72.1.1ARM体系结构的特点ARM即AdvancedRISCMachines的缩写。ARM公司1990年成立,是设计公司。ARM是知识产权(IP)供应商,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。ARM处理器的3大特点是:耗电少、成本低、功能强;16位/32位双指令集;全球众多合作伙伴保证供应。
ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件;装载/保存结构,数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;简单的寻址模式;统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计。2.1.1ARM体系结构的特点2.1.1ARM体系结构的特点ARM体系结构的特点:RISC型处理器结构ARM/Thumb指令集多处理器状态模式嵌入式在线仿真调试灵活和方便的接口ARM体系结构具有协处理器接口ARM处理器核还具有片上总线AMBA(AHB/ASB/APB)低电压低功耗的设计2.1.1ARM体系结构的特点ARM目前的产品系列:ARM7ARM9ARM9EARM10SecurCore通用处理器系列专门为安全设备设计的处理器系列2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构微处理器是整个系统的核心,通常由3大部分组成。
算术逻辑单元寄存器控制单元微处理器存储器输入输出1.ARM的体系机构由32位ALU、31个32位通用寄存器及6位状态寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器组成。
ALU由两个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。ALU的逻辑结构
ALU每一时钟周期由双相时钟组成。ALU的最小数据通路周期由以下组成:寄存器读时间;移位器延迟;ALU延迟;寄存器写建立时间;双相时钟间非重叠时间。ALU的数据通路时序桶形移位寄存器为了减少移位的延迟时间,ARM采用了32×32位的桶形移位寄存器。这样,可以使左移/右移n位、环移n位和算术右移n位等都可以一次完成。高速乘法器ARM为了提高运算速度,采用两位乘法的方法。两位乘法根据乘数的2位来实现“加-移位”运算。乘数An-1An: 00--原部分积S右移2位; 01--原部分积S加被乘数后右移2位; 10--原部分积S加2倍被乘数后,右移2位; 11--原部分积S加3倍被乘数后,右移2位。
2倍被乘数可通过将被乘数左乘1位来实现;3倍可看作4-1(11=100-1),故先减1倍被乘数,再加4倍被乘数来实现。4倍被乘数的操作实际上是在该2位乘数11的高1位乘数加“1”,且此“1”可暂存在Cout进位触发器中。高速乘法器组合值
Yi-1
Yi
C
操作
C值变化
0
0
0
0
部分积+0;右移两位
C=0
1
0
0
1
部分积+x;右移两位
C=0
1
0
1
0
部分积+x;右移两位
C=0
2
0
1
1
部分积+2x;右移两位
C=0
2
1
0
0
部分积+2x;右移两位
C=0
3
1
0
1
部分积-x;右移两位
C=1
3
1
1
0
部分积-x;右移两位
C=1
4
1
1
1
部分积+0;右移两位
C=1
高速乘法器x=0.101100 y=0.111001
高速乘法器ARM的高速乘法器采用32×8位的结构,逻辑结构如下:浮点部件浮点部件是作为选件为ARM体系结构选用,FPA10浮点加速器以协处理器方式与ARM相连,并通过协处理器指令的解释来执行。控制器
ARM的控制器采用硬接线的可编程逻辑阵列PLA。输入端14根,输出40根,分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器、ALU和移位器的控制。
寄存器ARM内含37个寄存器,其中:31个通用32位寄存器6个状态寄存器2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构冯·诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2冯·诺依曼体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据哈佛体系结构2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构指令执行的阶段计算机中的1条指令的执行可以分若干个阶段:①取指,从存储器中取出指令(fetch);②译码,指令译码(dec):③取操作数,假定操作数从寄存器组中取(reg);④执行运算(ALU);⑤存储器访问,操作数与存储器有关(mem);⑥结果写回寄存器(res)。指令执行的阶段流水线的停顿相邻指令执行的数据相关性会产生指令执行的停顿。指令执行的阶段碰到分支类指令,则会使后面紧接该条指令的几条指令的执行都无效。遇到分支指令28ARM7ARM处理器使用3级流水线,分别为:取指级:取指级完成程序存储器中指令的读取,并放入指令流水线中。译码级:对指令进行译码,为下一周期准备数据路径需要的控制信号。这一级指令“占有”译码逻辑,而不“占有”数据路径。执行级:指令“占有”数据路径,寄存器被读取,操作数在桶式移位器中被移位,ALU产生相应的运算结果并回写到目的寄存器中,ALU的结果则根据指令需求来更改状态寄存器的条件位。
ARM体系结构的3级流水线ARM7体系结构采用了3级流水线,分为取指,译码和执行。下图是单周期3级流水线的操作示意图。
ARM体系结构的3级流水线由于取指的存储器访问和执行的数据通路占用都是不可同时共享的资源,因此对多周期指令来说,会产生流水线阻塞。如图3-12所示下图的影印框周期都是与存储器访问有关的。因此在流水线设计中不允许重叠。31ARM9架构采用5级流水线:增加了I-Cache和D-Cache,把存储器的取指与数据存取分开;增加了数据写回的专门通路和寄存器;把指令的执行过程分割为5阶段:
取指令;指令译码、寄存器读、分支目标计算及执行;移位和ALU操作;数据Cache访问;结果写回到寄存器。32ARM9架构采用了5级流水线:
取指:指令从存储器中取出,放入指令流水线。译码:指令译码,从寄存器中读取寄存器操作数。在寄存器组中有3个操作数读端口,因此大多数ARM指令能在一个周期内读取其操作数。执行:把一个操作数移位,产生ALU的结果。如果指令是Load或Store,在ALU中计算存储器的地址。缓冲/数据:如果需要,则访问数据存储器。否则,ALU的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。回写:将指令产生的结果回写到寄存器,包括任何从存储器读取的数据。33更多级的流水线ARM10采用了6级流水线。ARM11采用了8级流水线。
ARM体系结构的5级流水线5级流水线把存储器的取指与数据存取分开,增加了I-Cache和D-Cache以提高存储器存取的效率,增加了数据写回的专门通路和寄存器,以减少数据通路冲突。这样,5级流水线分为:取指、指令译码、执行、数据缓存和写回。2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构存储器系统寄存器高速缓存SRAM主存储器DRAM本地存储器Flash、ROM、磁盘网络存储器Flash、ROM、磁盘时钟周期01—1050—10020000000分层结构存储器种类RAM:随机存取存储器,SRAM:静态随机存储器,DRAM:动态随机存储器
1)SRAM比DRAM快
2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多
4)DRAM需要周期性刷新ROM:只读存储器EPROM(ErasableProgrammableROM)EEPROM(ElectricallyEPROM)FLASH:闪存闪速存储器(FLASH)相对传统的EPROM芯片,这种芯片可以用电气的方法快速地擦写由于快擦写存储器不需要存储电容器,故其集成度更高,制造成本低于DRAM它使用方便,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以快擦写存储器技术发展十分迅速NOR技术NOR技术闪速存储器是最早出现的FlashMemory,目前仍是多数供应商支持的技术架构,它源于传统的EPROM器件。与其它FlashMemory技术相比,具有可靠性高、随机读取速度快的优势。在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用。由于NOR技术FlashMemory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。NAND技术NAND技术FlashMemory具有以下特点:以页为单位进行读和编程操作,1页为256或512字节;以块为单位进行擦除操作,1块为4K、8K或16K字节。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。芯片尺寸小,引脚少,是位成本(bitcost)最低的固态存储器,突破了每兆字节1元的价格限制。芯片包含有失效块,其数目最大可达到3~35块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来基于NAND的存储器可以取代硬盘或其它块设备。
ARM存储器结构ARM架构的处理器,有的带有指令Cache和数据Cache,但片内不带有片内RAM和片内ROM,系统所需的RAM和ROM须通过总线外接,如下图。2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构
ARM
I/O结构ARM架构中的处理器核和处理器内核一般都没有I/O的部件和模块,构成ARM架构的处理器中的I/O可通过AMBA总线来扩充。(1)存储器映像I/OARM采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址。不过I/O的输入/输出与真正的存储器读/写仍然有所不同:存储器的单元重复读多次的值是一致的;而I/O设备的连续2次输入,其输入值可能会有所不同。(2)直接存储器存取DMA
在I/O的数据流量比较大,中断处理比较频繁的场合,会明显影响系统的性能。因此,许多系统就采用了直接存储器存取DMA,这样,I/O的数据块传送至存储器的缓冲器区域就不需要处理器介入。而中断也仅仅出现在出现出错时或缓冲器满时。(3)中断IRQ和快速中断FIQ一般的ARM没有DMA的功能,为了提高I/O处理的能力,对于一些要求I/O处理速率比较高的事件,系统安排快速中断FIQ(FastInterrupt),而对其余的I/O源仍安排一般中断IRQ。2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构
ARM协处理器接口
ARM为了便于片上系统SOC的设计,处理器内核尽可能精简,要增加系统的功能,可以通过协处理器来实现。在逻辑上,ARM可以扩展16个协处理器,每个协处理器可有16个寄存器。协处理器号功能15系统控制14调试控制器13~8保留7~4用户3~0保留
例如,MMU和保护单元的系统控制都采用CP15协处理器;JTAG调试中的协处理器为CP14,即调试通信通道DCC(DebugCommunicationChannel)。2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构
ARMAMBA接口
ARM处理器也可以通过先进微控制器总线架构AMBA(AdvancedMicrocontrollerBusArchitecture)来扩展不同体系架构的宏单元及I/O部件。AMBA事实上已成为片上总线OCB(OnChipBus)标准。AMBA包括以下三类总线:先进高性能总线AHB先进系统总线ASB先进外围总线APB2.1.2ARM处理器结构1324ARM的体系结构ARM的流水线结构ARM存储器结构ARMI/O结构5ARMAMBA接口6ARM协处理器接口ARMJTAG调试接口78冯诺依曼结构与哈佛结构JTAG调试接口的结构
JTAG是联合测试工作组(JointTestActionGroup)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。此标准用于测试访问端口,使用边界扫描的方法来测试印刷电路板。
JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(TestAccessPort测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现今,JTAG接口还常用于实现ISP(In-SystemProgrammable;在线编程),对FLASH等器件进行编程。JTAG调试接口的结构因为只有一条数据线,通信协议有必要像其他串行设备接口一样为串行传输。时钟由TCK引脚输入。配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。JTAG调试接口的结构由测试访问端口TAP(TestAccessPort)控制器、指令寄存器、数据寄存器以及与JTAG接口兼容的ARM架构处理器组成。JTAG的控制寄存器①测试访问端口TAP控制器对嵌入在ARM处理器核内部的测试功能电路进行访问控制,是一个同步状态机。通过测试模式选择TMS和时钟信号TCK来控制其状态机。②指令寄存器是串行移位寄存器,通过它可以串行输入执行各种操作的指令。③数据寄存器组是一组串行移位寄存器。操作指令被串行装入由当前指令所选择的数据寄存器,随着操作的进行,测试结果被串行移出。其中:器件ID寄存器:读出在芯片内固化的ID号。旁路寄存器:1位移位寄存器,用1个时钟的延迟把TDI连至TDO,使测试者在同一电路板测试循环内访问其他器件。边界扫描寄存器(扫描链):截取ARM处理器核与芯片引脚之间所有信号,组成专用的寄存器位。JTAG测试信号TRST:测试复位输入信号,测试接口初始化。TCK:测试时钟,在TCK时钟的同步作用下,通过TDI和TDO引脚串行移入/移出数据或指令,同时也为测试访问端口TAP控制器的状态机提供时钟。TMS:测试模式选择信号,控制测试接口状态机的操作。TDI,测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器(由TAP控制器的当前状态及已保存在指令寄存器中的指令来控制)。TDO:测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片。TAP状态机测试访问端口TAP控制器是一个16状态的有限状态机,为JTAG提供控制逻辑。状态转移图如右图:
JTAG接口控制指令控制指令用于控制JTAG接口各种操作,控制指令包括公用(Public)指令和私有(Private)指令。最基本的公用指令有:BYPASS:旁路片上系统逻辑指令,用于未被测试的芯片,即把TDI与TPO旁路(1个时钟延迟)。EXTEST:片外电路测试指令,用于测试电路板上芯片之间的互连。IDCODE:读芯片ID码指令,用于识别电路板上的芯片。此时,ID寄存器在TDI与TDO引脚之间,在captureDR状态中,芯片的ID复制至该寄存器,然后在shiftDR状态中移出。INTEST:片内测试指令,边界扫描寄存器位于TDI与TDO引脚之间,处理器核逻辑输入和输出状态被该寄存器捕获和控制。2.1.3ARM处理器内核
ARM体系结构的处理器内核有:ARM7TDMI、ARM8、ARM9TDMI、ARM10TDMI及ARM11TDMI等。ARM7TDMIARM7TDMI名字原义如下:ARM7ARM632位整数核的3V兼容的版本;T16位压缩指令集Thumb;D在片调试(Debug)支持,允许处理器响应调试请求暂停;M增强型乘法器(Multiplier),与以前处理器相比性能更高,产生全64位结果;I嵌入式ICE硬件提供片上断点和调试点支持。ARM7TDMI体系结构图ScanChain133个扫描单元,包括数据总线和一个断点控制信号。ScanChain0113个扫描单元,包括ARM所有的I/O,地址/数据总线和输入/输出控制信号。此链很复杂,不易控制,但包含信息丰富,可通过它得到ARM7TDMI内核的所有信息。ScanChain238个扫描单元,通过控制EmbeddedICE宏单元,实现对ARM进行指令的断点、观察点的控制。ARM7TDMI引脚图ARM7TDMI-接口存储器接口中断调试接口协处理器接口ARM7TDMI-存储器接口
MCLKnWAITA[31:0]D[31:0]nMREQ,SEQnRWLOCKABEDBEnTRANSABORTClocksandClockControlMemoryManagementMemoryInterfaceDataandAddressBusControlMemoryAccessControlnM[4:0]MAS[1:0]BL[3:0]APE,ALETBE
ECLKTBITBUSENnENINBIGENDARM7TDMInENOUTARM7TDMI-存储器接口MCLK–输入处理器工作的时钟。静态设计的ARM通过延长时钟周期来访问慢速的设备。nWAIT–输入在ARM内部与MCLK相与。必须在MCLK为低的相位阶段改变。容许该信号从一个周期扩展到另一个周期,延长总线访问周期。ECLK–输出核心逻辑的时钟的输出。在正常和调试状态下反映内部时钟。ph1&ph2–内部信号双相位非覆盖的内部时钟。处理器内部工作周期。ARM7TDMI-存储器接口MCLKnWAITPhase1Phase2Phase2Phase1ph2InternalClockECLKph1InternalClockARM7TDMI-存储器接口MCLKnWAITPhase1Phase2Phase2Phase1ph2InternalClockECLKph1InternalClockARM7TDMI-存储器接口MCLKnWAITPhase1Phase2Phase2Phase1ph2InternalClockECLKph1InternalClockARM7TDMI-存储器接口nMREQ–输出:存储器请求.低有效,指示在接下来的周期中进行存储器访问。SEQ–输出:连续地址访问高有效,指示在接下来的周期中地址不变或大一个操作数(字或半字)nRW–输出:非读/写区分存储器读写访问LOCK–输出:锁定操作指示一条交换指令正在执行,接下来的两个处理器总线周期是不可见的。MAS[1:0]–输出:存储器访问大小指示字、半字或字节访问。ARM7TDMI-存储器接口APE和ALE–输入ARM建议两个信号都为高,以便有最长的时间进行地址译码。任何一个信号都可以连接到在数据访问期间需要稳定地址的设备。APE:地址流水线使能APE=1–地址是流水线的(在后续的相位2提供).APE=0–重新定时地址改变的时序,从MCLK的下降沿开始。控制对A[31:0]的透明锁存。ALE:地址锁存使能控制对A[31:0]的透明锁存。仅用于已有的系统设计,因为它比APE更复杂。ARM7TDMI-存储器接口ABE–输入:地址总线使能当ABE为低时,下面的信号处于高阻状态:A[31:0],nRW,LOCK,MAS[1:0],nOPC,andnTRANSDBE–输入:数据总线使能当DBE为低时,D[31:0]处于高阻状态。TBE–输入:测试总线使能当TBE为低时,下面的信号处于高阻状态:D[31:0],A[31:0],nRW,LOCK,MAS[1:0],nOPC,andnTRANS在ABE和DBE都为低时,情况一样。ARM7TDMI-存储器接口nOPC–输出低有效,指示处理器正在从存储器取指。nTRANS–输出低有效,指示处理器处于‘usermode’.nM[4:0]–输出当前操作模式,即User,FIQ,IRQ,Supervisor,Abort,SystemorUndefined.ABORT–输入指示请求的访问不容许。既用于指令预取,又用于Dataabort。ARM7TDMI-接口存储器接口中断调试接口协处理器接口ARM7TDMI-中断接口nIRQnFIQISYNCInterruptsARM7TDMIARM7TDMI-中断接口2个中断源:nIRQandnFIQ–输入nFIQ比nIRQ优先级高。FIQ代码可以在进入中断后直接访问执行。可以选择(ISYNC–输入)同步或异步时序。异步时序(ISYNC=0)损失一个周期的同步。同步时序(ISYNC=1)nIRQ和nFIQ必须在MCLK的下降沿的时候已经建立且保持。nFIQ和nIRQ中断可以通过设置CPSR寄存器中的F和I位屏蔽。ARM7TDMI-中断接口ISYNC=0EarliestStartofInterruptSequenceInstructionfromInterruptvectorInterruptVectorAddressMCLKnFIQ/nIRQA[31:0]D[31:0]ARM7TDMI-中断接口ISYNC=1EarliestStartofInterruptSequencevectorMCLKnFIQ/nIRQA[31:0]D[31:0]InterruptVectorAddressInstructionfromInterruptARM7TDMI-接口存储器接口中断调试接口协处理器接口ARM7TDMI-调试接口DBGRQBREAKPTDBGACKDebugInterface
ECLKEXTERN[1:0]DBGENARM7TDMIJTAGInterfaceARM7TDMI-调试接口TDI -Input -TestDataInTDO -Output -TestDataOutTMS -Input -TestModeSelectTCK -Input -TestClocknTRST -Input -TestReset(activelow)ARM7TDMI-调试接口DBGEN–输入(DEBUGENABLE)必须保持高电平,以允许ARM7TDMI的软件调试。EXTERN[1:0]–输入输入到EmbeddedICE宏单元,允许基于外部条件的断点。ARM7TDMI-调试接口下面的信号仅用于扩展外部调试。Multi-ICE不使用这些信号。BREAKPT–输入(BREAKPOINT)在指令上标志断点。在数据上标志观察点。如果不用,保持低电平。DBGRQ–输入(DEBUGREQUEST)强制ARM7TDMI核进入调试状态,高有效。如果不用,保持低电平。DBGACK–输出(DEBUGACKNOWLEDGE)ARM7TDMI进入调试状态的响应信号。高电平指示ARM7TDMI核已进入调试状态。ARM7TDMI-调试接口TAP信号容许增加额外的链SCREG[3:0] -
输出 当前选择的扫描链IR[3:0] -
输出 当前已加载的指令TAPSM[3:0] -
输出 TAP状态机状态SDINBS -
输出
扫描链串行数据输入SDOUTBS -
输入 扫描链串行数据输出所需其它的移位、捕获时钟及多路复用器或选择线。ARM7TDMI-接口存储器接口中断调试接口协处理器接口ARM7TDMI-协处理器接口nCPI,nOPCCPB,CPACoprocessorInterfaceARM7TDMIARM7TDMI-协处理器接口可以支持多达16个协处理器。nOPC–输出:取操作码低有效,指示正在取指令。使能协处理器跟踪处理器指令流水线。nCPI–输出:协处理器指令低有效,指示当前正在执行的指令是一条协处理器指令,且该指令应该执行。CPA–输入:协处理器缺少高有效,当能够执行所要求的协处理器操作的协处理器存在时变低。CPB–输入:协处理器忙高有效,当协处理器准备好要执行要求的协处理器操作时变低。如果没有连接外部协处理器的话,将CPA和CPB拉高。采用了3级流水线结构,指令执行分为取指、译码和执行等3个阶段;运算器能实现32位整数运算;采用了高效的乘法器,用32×8位乘法器实现32×32位乘法(结果为64位)。采用v4T版指令,支持16位Thumb指令集;嵌入式ICE(Embedded-ICE)模块为ARM7TDMI提供了片内调试功能。同时通过JTAG接口可以很方便地用PC主机对ARM7TDMI进行开发和调试。还提供了存储器接口、MMU接口、协处理器接口和调试接口,以及时钟与总线等控制信号。ARM7TDMI主要特点ARM7TDMI主要性能指标工艺:0.35μm(新近采用0.25μm);金属布线:3层;电压:3.3V(新近采用1.2V、0.9V);管子数:74209只;内核芯片面积:2.1mm2;时钟:0~66MHz;MIPS:66;功耗:87mW;MIPS/W:690(采用0.25μm工艺,0.9V电压,可达1200MIPS/W)。ARM9TDMI主要性能指标工艺:025µm(0.18µm);金属布线:3层;电压:2.5V(1.2V);管子数:11100只;核芯片面积:2.1mm2;时钟:0~200MHz;MIPS:220;功耗:150mW;MIPS/W:1500。ARM9TDMI流水线结构ARM9TDMI处理器内核采用了5级流水线。ARM9TDMI主要特点采用指令和数据分离访问的方式,即采用了指令Cache和数据Cache。用专门硬件来直接完成ARM与Thumb指令的译码。ARM9TDMI也有协处理器接口,允许在芯片增加浮点、数字信号处理或其他专用的协处理器。ARM9TDMI也提供相应的软核。ARM9E-S是具有DSP功能的能执行v5TE版ARM指令的ARM9TDMI软核,当然其芯片面积要增加30%。在ARM9流水线设计中,增加专用流水段用于存储器访问和将结果写回到寄存器组。而且,寄存器读也移到译码段。这些改变通过减少在单一时钟周期内操作最大的逻辑数目,允许更高的时钟频率。ARM10TDMIARM10TDMI在系统结构上主要采用增加时钟速率和减少每条指令平均时钟周期数CPI(ClockPerInstruction)两大措施,以同样的工艺,同样的芯片面积,在性能上2倍于ARM9TDMI。
ARM10TDMI采用提高时钟速率、6级流水线、分支预测逻辑、64位存储器和无阻塞的存/取逻辑等措施,使ARM10TDMI的性能得到很大提高,是目前高档ARM体系结构的处理器内核。流水线结构2.1.4ARM处理器核在最基本的ARM处理器内核基础上,可增加Cache、存储器管理单元MMU、协处理器CP15、AMBA接口以及EMT宏单元等,构成ARM处理器核。以ARM7TDMI处理器内核为基础的有:ARM720T处理器核ARM740T处理器核以ARM9TDMI处理器内核为基础的有:ARM920T处理器核ARM940T处理器核ARM720T
ARM720T处理器核是在ARM7TDMI处理器内核基础上,增加8KB的数据与指令Cache,支持段式和页式存储的MMU、写缓冲器及AMBA接口构成。ARM740TARM740T处理器核与ARM720T处理器核相比,结构基本相同,但ARM740处理器核没有存储器管理单元MMU,不支持虚拟存储器寻址;而是用存储器保护单元来提供基本保护和Cache的控制。这为低价格低功耗的嵌入式应用提供了合适的处理器核。由于在嵌入式应用中运行固定软件,也不需要进行地址变换,所以可以省去地址变换后备缓冲器TLB。ARM920T
ARM920T处理器核是在ARM9TDMI处理器内核基础上,增加了分离式的指令Cache和数据Cache,并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器及AMBA接口等。ARM920T处理器核特性:工艺:0.25μm;金属布线:4层;电压:2.5V;管子数:2500000只;核芯片面积:23~25mm2;时钟:0~200MHz;MIPS:220;功耗:560mW;MIPS/W:390。ARM920T特性ARM940T
ARM940T处理器核与ARM740T处理器核相似,采用了ARM9TDMI处理器内核,是ARM920T处理器核的简化。没有存储器管理单元MMU,不支持虚拟存储器寻址,而是用有储器保护单元来提供存储保护和Cache控制。ARM940T的存储保护单元结构与ARM740T的基本相同。主要内容1324ARM体系结构概述
编程模型ARM基本寻址方式ARM指令集5ARM9TDMI内核6ARM9与ARM7的比较ARM920T核72.2.1数据类型ARM处理器支持下列数据类型:Byte字节,8位;Halfword半字,16位(半字必须与2字节边界对准);Word字,32位(字必须与4字节边界对准)。2.2.2处理器模式ARM体系结构支持7种处理器模式。处理器模式说明用户usr正常程序执行模式FIQfiq支持高速数据传送或通道处理IRQirq用于通用中断处理管理svc操作系统保护模式中止abt实现虚拟存储器和/或存储器保护未定义und支持硬件协处理器的软件仿真系统sys运行特权操作系统任务
处理器模式分类处理器模式用户模式特权模式异常模式系统模式FIQIRQ管理中止未定义2.2.3处理器工作状态ARM处理器有两种工作状态:ARM:32位,这种状态下执行字对准的ARM指令;Thumb:16位,这种状态下执行半字对准的Thumb指令。ARM处理器在两种工作状态之间可以切换。ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。(1)进入Thumb状态。当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ﹑FIQ﹑Undef﹑Abort和SWI)返回时,自动转换到Thumb状态。(2)进入ARM状态。当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ﹑FIQ﹑Reset﹑Undef﹑Abort和SWI)。在此情况下,把PC放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。2.2.4寄存器组织ARM处理器总共有37个寄存器:31个通用寄存器,包括程序计数器(PC)。这些寄存器是32位的。6个状态寄存器。这些寄存器也是32位的,但只使用了其中的12位。通用寄存器通用寄存器(R0~R15)可分成3类:不分组寄存器R0~R7:在所有的处理器模式下,它们每一个都访问一样的32位物理寄存器。分组寄存器R8~R14:它们每一个访问的物理寄存器取决于当前的处理器模式。每种处理器模式有专用的分组寄存器用于快速异常处理。寄存器R13通常用作堆栈指针,称作SP。
寄存器R14用作子程序链接寄存器,也称为链接寄存器LR。寄存器R8~R12各有两组物理寄存器。一组为FIQ模式,另一组为除FIQ以外的其它模式。寄存器R13、R14各有6个分组的物理寄存器。1个用于用户模式和系统模式,而其它5个分别用于5种异常模式。程序计数器R15:在ARM状态,位[1:0]为0,位[31:2]保存PC在Thumb状态,位[0]为0,位[31:1]保存PC。程序状态寄存器在所有处理器模式下都可以访问当前程序状态寄存器CPSR(CurrentProgramStatusRegister)。CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR(SavedProgramStatusRegister)。当异常出现时,SPSR用于保留CPSR的状态。CPSR和SPSR格式如下:程序状态寄存器条件码标志N、Z、C、V(Negative、Zero、Carry、oVerflow)位称作条件码标志(ConditionCodeFlags)。通常条件码标志通过执行下述指令进行修改,即比较指令(CMN、CMP、TEQ、TST);一些算术运算、逻辑运算和传送指令,它们的目的寄存器不是R15。这些指令通过在指令助记符后加上字符“S”进行标志设置。条件码标志的含义N:如果结果是带符号二进制补码,若结果为负数,则N=1;若结果为正数或0,则N=0。Z:若指令的结果为0,则置1,否则置0。C:-加法,包括比较指令CMN。产生进位则C置1;否则置0。-减法,包括比较指令CMP。产生借位则C置0;否则置1。-对于结合移位操作的非加/减法指令,C置为移出值的最后1位。V:对于加法或减法指令,当发生带符号溢出时,V置1。程序状态寄存器—溢出式子1:
式子2:
0111
(7)
0011
(3)
+
0111
(7)
+
0011
(3)
-------------------------------
---------------------------
1110
(-2)溢出
0110
(6)正确溢出标志V:对于加法或减法指令,当发生带符号溢出时,V置1。式子3:
式子4:
1100
(-4)
1100
(-4)
+
1000
(-8)
+
1111
(-1)
-------------------------------
----------------------------
10100
(
4)溢出
11011
(-5)正确
--
--
进位
进位程序状态寄存器—溢出总结两个正数相加,如果结果为负数,就产生了溢出。两个负数相加,如果结果为正数,就产生了溢出。不同符号的两个数相加,不会产生溢出。对于加法,当计算的结果最高位向上进一位时,就会产生进位情况.程序状态寄存器控制位程序状态寄存器PSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。①中断禁止位I置1则禁止IRQ中断;F置1则禁止FIQ中断。②T位
T=0指示ARM执行;T=1指示Thumb执行。③模式位M0、M1、M2、M3和M4是模式位。这些位决定处理器的工作模式。M[4:0]模式可访问的寄存器10000用户PC、R14~R0、CPSR10001
FIQPC、R14_fiq~R8_fiq、R7~R0、CPSR、SPSR_fiq10010
IRQPC、R14_irq、R13_irq、R12~R0、CPSR、SPSR_irq10011管理PC、R14_svc、R13_svc、R12~R0、CPSR、SPSR_svc10111中止PC、R14_abt、R13_abt、R12~R0、CPSR、SPSR_abt11011未定义PC、R14_und、R13_und、R12~R0、CPSR、SPSR_und11111系统PC、R14~R0、CPSRThumb状态的寄存器集Thumb
状态下的寄存器集是ARM状态下的寄存器集的子集。程序员可以直接访问8个通用寄存器(R0~R7)、PC、SP、LR和CPSR。每一种特权模式都有一组SP、LR和SPSR。
Thumb状态的寄存器集Thumb状态寄存器与ARM状态寄存器的关系注意:在Thumb状态下,寄存器R8-R15(高寄存器)并不是标准寄存器集的一部分。2.2.5异常异常由内部或外部源产生并引起处理器处理一个事件,例如外部中断或试图执行未定义指令都会引起异常。ARM支持7种类型的异常。异常类型模式正常地址高向量地址复位管理0x000000000xFFFF0000未定义指令未定义0x000000040xFFFF0004软件中断(SWI)管理0x000000080xFFFF0008预取中止(取指令存储器中止)中止0x0000000C0xFFFF000C数据中止(数据访问存储器中止)中止0x000000100xFFFF0010IRQ(中断)IRQ0x000000180xFFFF0018FIQ(快速中断)FIQ0x0000001C0xFFFF001C当异常出现时,异常模式分组的R14和SPSR用于保存状态。当处理异常返回时,把SPSR传送到CPSR,R14传送到PC。这可用两种方法自动完成,即使用带“S”的数据处理指令,将PC作为目的寄存器;使用带恢复CPSR的多加载指令。优先级异常1(最高)复位2数据中止3FIQ4IRQ5预取中止6(最低)未定义指令、SWI2.2.5异常异常优先级2.2.6存储器和存储器映射I/O地址空间ARM体系结构使用232个8位字节的单一、线性地址空间。将字节地址做为无符号数看待,范围为0~232-1。存储器格式2.2.6存储器和存储器映射I/O非对准的存储器访问存储器映射I/O
若在ARM态执行期间,将没有字对准的地址写到R15中,结果通常不可预知或者地址的位[1:0]被忽略。若在Thumb态执行期间,将没有半字对准的地址写到R15中,则地址的位[0]通常忽略。当执行无效代码时,从R15读值的结果对ARM状态来说总是位[1:0]为0,对Thumb状态来说总是位[0]为0。ARM系统完成I/O功能的标准方法是使用存储器映射I/O。从存储器映射I/O地址加载用于输入,向存储器映射I/O地址存储用于输出。存储器映射I/O位置的行为通常不同于对一个正常存储器位置所期望的行为。例如,对于存储器映射I/O位置,第2次加载的返回值可以不同于第1次加载的返回值。主要内容1324ARM体系结构概述
编程模型ARM基本寻址方式ARM指令集5ARM9TDMI内核6ARM9与ARM7的比较ARM920T核7
寻址方式是根据指令中给出的地址码字段来寻找真实操作数地址的方式。ARM处理器支持的基本寻址方式有:2.3ARM基本寻址方式寄存器寻址立即寻址寄存器移位寻址寄存器间接寻址变址寻址多寄存器寻址堆栈寻址块复制寻址相对寻址寄存器寻址所需要的值在寄存器中,指令中地址码给出的是寄存器编号,即寄存器的内容为操作数。例如指令:ADDR0,R1,R2;R0R1+R2这条指令将2个寄存器(R1和R2)的内容相加,结果放入第3个寄存器R0中。必须注意写操作数的顺序,第1个是结果寄存器,然后是第一操作数寄存器,最后是第二操作数寄存器。立即寻址立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的地址码部分不是通常意义上的操作数地址,而是操作数本身。这样的数称为立即数。例如指令:ADDR3,R3,#1;R3R3+1ANDR8,R7,#0xff;R8R7[7:0]第2个源操作数为一个立即数,以“#”为前缀,十六进制值以在“#”后加“0x”或“&”表示。第1条指令完成寄存器R3的内容加1,结果放回R3中。第2条指令完成R7的32位值与0FFH相“与”,结果为将R7的低8位送到R8中。寄存器移位寻址这种寻址方式是ARM指令集特有的。第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。例如指令:ADDR3,R2,R1,LSL#3;R3R2+8×R1寄存器R1的内容逻辑左移3位,再与寄存器R2内容相加,结果放入R3中。可以采取的移位操作如有:LSL:逻辑左移(LogicalShiftLeft)。寄存器中字的低端空出的位补0。0LSR:逻辑右移(LogicalShiftRight)。寄存器中字的高端空出的位补0。0可以采取的移位操作如有:寄存器移位寻址ASR:算术右移(ArithmeticShiftRight)。算术移位的对象是带符号数,若源操作数为正数,则字的高端空出的位补0。若源操作数为负数,则字的高端空出的位补1。RRX:扩展为1的循环右移(RotateRighteXtendedby1place)。操作数右移一位,空位(位[31])用原C标志值填充。
ROR:循环右移(ROtateRight)。从字的最低端移出的位填入字的高端空出的位。C寄存器间接寻址指令中的地址码给出某一通用寄存器的编号。在被指定的寄存器中存放操作数的有效地址,而操作数则存放在存储单元中,即寄存器为地址指针。例如指令:LDRR0,[R1];R0[R1]STRR0,[R1];R0[R1]寄存器间接寻址使用一个寄存器(基址寄存器)的值作为存储器的地址。第1条指令将寄存器R1指向的地址单元的内容加载到寄存器R0中。第2条指令将寄存器R0存入寄存器R1指向的地址单元。变址寻址变址寻址就是将基址寄存器的内容与指令中给出的位移量相加,形成操作数有效地址。变址寻址用于访问基址附近的存储单元,包括基址加偏移和基址加索引寻址。寄存器间接寻址是偏移量为0的基址加偏移寻址。基址加偏移寻址基址加索引寻址前索引寻址方式:基址需加(或减)最大4KB的偏移来计算访问的地址。例如:LDRR0,[R1,#4];R0[R1+4]后索引寻址方式:基址不带偏移作为传送的地址,传送后自动索引。例如:LDRR0,[R1],#4;R0[R1];R1R1+4
指令指定一个基址寄存器,再指定另一个寄存器(索引),其值作为位移加到基址上形成存储器地址。例如:LDRR0,[R1,R2];R0[R1+R2]多寄存器寻址一次可以传送几个寄存器的值。允许一条指令传送16个寄存器的任何子集(或所有16个寄存器)。例如指令:LDMIAR1,{R0,R2,R5};R0[R1];R2[R1+4];R5[R1+8]
由于传送的数据项总是32位的字,基址R1应该字对准。这条指令将R1指向的连续存储单元的内容送到寄存器R0、R2和R5。堆栈寻址堆栈是按“先进后出”(FILO)的特定顺序进行存取的存储区。堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储器区域(堆栈)。栈指针所指定的存储单元就是堆栈的栈顶。根据增长方向,堆栈可分为:向上生长:即向高地址方向生长,称为递增堆栈(AscendingStack)。向下生长:即向低地址方向生长,称为递减堆栈(DescendingStack)。根据栈指针的指向位置,堆栈可分为:满堆栈:堆栈指针指向最后压入堆栈的有效数据项空堆栈:堆栈指针指向下一个数据项放入的空位置,这样就有4种类型的堆栈表示递增和递减的满和空堆栈的各种组合。ARM处理器支持所有这4种类型的堆栈。满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空位置。满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。空递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空位置。堆栈寻址块复制寻址ARM支持两种不同角度的寻址机制:堆栈角度和块复制角度,两者都映射到相同的基本指令。堆栈和块拷贝角度的多寄存器加载和存储指令映射如下图。块复制角度的寻址举例,执行指令之前的基址寄存器值是R9,自动寻址之后的基址寄存器是R9’。
块复制寻址相对寻址相对寻址是变址寻址的一种变通,由程序计数器PC提供基地址。指令中的地址码字段作为位移量,两者相加后得到操作数的有效地址。位移量指出的是操作数与现行指令之间的相对位置。例如指令:BLSUBR;转移到SUBR…;返回到此SUBR…;子程序入口地址MOVPC,R14;返回主要内容1324ARM体系结构概述
编程模型ARM基本寻址方式ARM指令集5ARM9TDMI内核6ARM9与ARM7的比较ARM920T核7129名词解释:机器指令、伪指令、宏指令机器指令被处理器直接执行,伪指令和宏指令不能。机器指令包括ARM指令集和Thumb指令集;伪指令是在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作;宏指令在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。2.4.0
ARM指令集概述130指令:是规定计算机进行某种操作的命令。指令系统:计算机能够执行的各种指令的集合。
ARM指令集概念131所有指令都是32位的。大多数指令都在单周期内完成。所有指令都可以条件执行。ARM指令为load/store类型。基本指令仅36条,分成5+1类。有9种寻址方式。指令集可以通过协处理器扩展。
ARM指令的特点132ARM指令为load/store类型。也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。
ARM指令的特点133ARM指令可以分为5类机器指令。5类机器指令:存储器访问(6个)数据处理(16个算术逻辑、6个乘法、1个前导零)跳转(4个)协处理器指令(7个)杂项指令(4个)ARM伪指令
ARM指令的特点134
ARM指令的格式ARM指令基本的语法格式为:<Opcode>{<cond>}{s}<Rd>,<Rn>{,<Operand2>}Opcode:指令操作码。cond:指令的条件码。S:决定指令的操作是否影响cpsr的值。Rd:目标寄存器编码。Rn:包含第一个操作数的寄存器编码。Operand2:第2操作数。<>内是必需的{}内是可选的135
ARM指令的格式LDR
R0,[R1] ;读取R1地址上的存储器单元内容, ;执行条件ALBEQDATAEVEN;跳转指令,执行条件EQ,即相等 ;跳转到DATAEVEN
ADDS
R1,R1,#1
;加法指令,R1+1=R1影响CPSR ;寄存器,带有S
SUBNES
R1,R1,#0xD;条件执行减法运算(NE), ;R1-0xD=>R1,影响 ;CPSR寄存器,带有S136
ARM指令的格式ARM指令典型的编码格式为:(数据处理指令类)CondOpcodeSRnRdOperand20111215161920212425272831782.4.1条件执行条件码的位数和位置:几乎每条ARM指令都可以包含4位条件码域<cond>,它占用指令编码的最高四位[31:28]。条件码的表示:条件编码共24
=16种,其中,15种用于指令的条件码。每种条件码用2个英文缩写字符表示。2.4.1条件执行带条件指令的执行:ARM处理器根据指令的执行条件是否满足,决定当前指令是否执行。
只有在cpsr中的条件标志位满足指定的条件时,指令才会被执行。不符合条件的代码依然占用一个时钟周期(相当于一个NOP指令)。条件码的书写方法:条件码的位置在指令助记符的后面(因此也称为条件后缀)。
例如:
MOVEQR0,R12.4.1条件执行操作码[31:28]助记符后缀标志含义0000EQZ=1相等0001NEZ=0不等0010CS/HSC=1大于或等于(无符号>=)0011CC/LOC=0小于(无符号<)0100MIN=1负0101PLN=0正或零0110VSV=1溢出0111VCV=0未溢出1000HIC=1且Z=0大于(无符号>)1001LSC=0或Z=1小于或等于(无符号<=)1010GEN和V相同带符号>=1011LTN和V不同带符号<1100GTZ=0且N和V相同带符号>1101LEZ=1或N和V不同带符号<=1110AL任何总是(通常省略)2.4.2指令分类说明
32位ARM指令集由13种基本指令类型组成,分成5类机器指令及ARM伪指令:3种类型的存储器访问指令:控制存储器和寄存器之间的数据传送。3种类型的数据处理指令:使用片内ALU、桶形移位器和乘法器针对31个寄存器完成高速数据处理操作。4种类型的分支指令:控制程序执行流程、指令优先级以及ARM代码和Thumb代码的切换。3种类型的协处理器指令:专用于控制外部协处理器。这些指令以开放和统一的方式扩展了指令集的片外功能。
杂项指令:软中断指令、程序状态指令ARM伪指令
ARM存储器访问指令(1)LDR和STR——字和无符号字节字节加载是用“0”扩展到32位。LDR和STR都有如下4种可能的形式:
零偏移:Rn的值作为传送数据的地址。句法:
op{cond}{B}{T}Rd,[Rn]
前索引偏移:在数据传送之前,将偏移量加到Rn中。其结果作为传送数据的存储器地址。若使用后缀“!”,则结果写回到Rn中,且Rn不允许是R15。句法:
op{cond}{B}Rd,[Rn,Flexoffset]{!}
ARM存储器访问指令(1)LDR和STR——字和无符号字节
程序相对偏移:程序相对偏移是前索引形式的另一种版本。汇编器由PC计算偏移量,并将PC作为Rn生成前索引指令。不能使用后缀“!”。句法:op{cond}{B}Rd,label
后索引偏移:Rn的值用做传送数据的存储器地址。在数据传送后,将偏移量加到Rn中。结果写回到Rn。Rn不允许是R15。句法:op{cond}{B}{T}Rd,[Rn],Flexoffset
ARM存储器访问指令(1)LDR和STR——字和无符号字节[例子]LDR R8,[R0] LDRNER2,[R5,#960]!
STR R2,[R9,#consta-struc]STRBR0,[R3,-R8,ASR#2]STR R5,[R7],#-8LDR R0,localdata ;R8[R0];(有条件地)R2[R5+960],;R5R5+960;consta-struc是常量的表达式,该
常量值的范围为0~4095;R0[R3-R8/4],存储R0的最低有效字节,R3和R8不变;R5[R7],R7R7-8;加载一个字,该字位于标号lacaldata所在地址(2)LDR和STR——半字和带符号字节
ARM存储器访问指令这些指令有4种可能的形式:零偏移、前索引偏移、程序相对偏移和后索引偏移。以同样的顺序,4种形式的句法为op{cond}typeRd,[Rn]op{cond}typeRd,[Rn,offset]{!}op{cond}typeRd,labelop{cond}typeRd,[Rn],offset其中:type
必须是以下所列的其中之一:SH
对带符号半字(仅LDR);H
对无符号半字;SB
对带符号字节(仅LDR)。label
程序相对偏移表达式。
label必须是在当前指令的±255字节范围内。offset
加在Rn上的偏移量。
ARM存储器访问指令(2)LDR和STR——半字和带符号字节[例子]LDREQSHR11,[R6]LDRHR1,[R0,#22]STRHR4,[R0,R1]!LDRSB R6,constf;(有条件地)R11[R6],加载16位半字,带符号扩展到32位;R1[R0+22],
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子科技与艺术共创未来新纪元
- 科技企业如何利用网络舆情提升竞争力
- 智能硬件设计与开发考核试卷
- 数字出版物的绿色印刷与环保考核试卷
- 期货交易风险控制的数学模型考核试卷
- 现代生活与心理调适技巧探讨
- 班级文化对师生关系的促进作用
- 批发业务流程优化与提升考核试卷
- 科技产品移动营销的创意与执行案例
- 体育保障组织服务质量监控考核试卷
- 健康管理与个人健康2024年的健康护理方法
- 安徽省合肥市庐阳区评价2023-2024学年六年级下学期5月模拟预测数学试题+
- 部编人教版六年级语文下册全册单元教材分析
- 钉钉办公软件培训课件
- 5草船借箭 课件
- 锌离子电池原理和应用教学教案
- 2023广东省深圳市各区中考数学模拟题-压轴题
- JBT 1472-2023 泵用机械密封 (正式版)
- 价格法价格违法行为和明码标价法律法规价格欺诈知识
- 2016-2023年山东力明科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2022版《义务教育教学新课程标准》解读课件
评论
0/150
提交评论