S3C44B0X微处理器共有37个32位寄存器,其中,31个是通用寄存器,6个是状态寄存器。这37个寄存器不能同时全部访问,处理器的操作状态和工作模式决定用户可以访问哪些寄存器。
1.ARM状态下的寄存器组
在ARM状态下,通用寄存器R0~R14、程序计数器PC(Program Counter)、一个或两个状态寄存器在任何时候都可以访问。图2-20给出了ARM状态下每一种工作模式可用的寄存器,有◣符号的称为分组寄存器。寄存器组共有16个可直接存取的寄存器R0~R15(其中未分组寄存器为R0~R7、分组寄存器为R8~R14、程序计数器PC(R15)和程序状态寄存器CPSR(Current Program Status Register)(R16)。图2-20给出了每一种方式可用的寄存器,带有◣符号的称为分组寄存器。
图2-20中,在不同工作模式下处理器使用的寄存器有所不同,但R15都为PC,CPSR都为状态寄存器,R0~R7为公用的通用寄存器,仅R8~R14和状态寄存器在不同工作模式下有所不同。
(1)通用寄存器
S3C44B0X有31个通用寄存器,不分组的是R0~R7,分组的是R8~R14。对于分组寄存器,每一次访问时对应的物理寄存器与处理器当前的工作模式有关,同一个名称的寄存器在不同工作模式下对应不同的物理寄存器。
在快速中断模式下,R8~R12的模式标识为fiq,表明是快速中断模式,与其他模式地址重叠,共2组10个寄存器;R13~R14习惯用作堆栈指针(Stack Pointer,SP)和程序链接寄存器(Link Register,LR);加上作为PC的R15,通用寄存器共31个。
(2)状态寄存器
S3C44B0X共有6个状态寄存器,表明CPU工作状态及程序运行状态,均为32位,除了共用的CPSR外还有分组的CPSR(5组共5个),程序状态寄存器的格式如图2-21所示,包括4个条件码标志(N、Z、C、V)、Q标志和8个控制位(I、F、T、M4~M0)。
图2-20 ARM状态下的寄存器组
图2-21 程序状态寄存器格式
N、Z、C、V是条件码标志,N为符号标志,N=1表示负数,N=0表示正数;Z为全0标志,运算结果为0则Z=1;C为借位标志,有进位或借位则C=1;V为溢出标志,溢出则V=1,否则V=0;Q标志为增强的DSP运算指令中是否出现溢出或饱和标志,溢出或饱和则Q=1,否则Q=0。
程序状态寄存器的最低8位为控制位,其中I和F是中断禁止位,I=0允许IRQ中断,F=0允许FIQ中断,T=1执行Thumb指令,否则执行ARM指令,M4~M0为模式选择位,决定处理器的工作模式。
2.Thumb状态下的寄存器组
Thumb状态下的寄存器组是ARM状态寄存器组的子集,Thumb状态下的寄存器组如图2-22所示。
在Thumb状态下,可以存取8个通用寄存器R7~R0、PC、SP、LR和CPSR。而高位寄存器R12~R8并不是标准寄存器集的一部分,表中未列入,但可使用汇编语言程序受限制地访问,将其用作快速暂存器。
图2-22 Thumb状态下的寄存器组
3.ARM状态下与Thumb状态下的寄存器对应关系
ARM与Thumb状态下的寄存器对应关系如图2-23所示。
图2-23 ARM与Thumb状态下的寄存器对应关系(www.xing528.com)
图中,通用寄存器R7~R0、CPSR和SPSR在两种状态下相同;Thumb状态下的SP对应于ARM状态下的R13;Thumb状态下的LR对应于ARM状态下的R14;Thumb状态下的PC对应于ARM状态下的PC(R15)。
习题
2-1 8086 CPU由哪两部分组成?每个部分的功能和特点分别是什么?
2-2 8086 CPU中有几个通用寄存器,有几个变址寄存器,有几个地址指针寄存器?它们中通常哪几个寄存器可作为地址寄存器使用?
2-3 简述最小模式和最大模式的含义及区别。
2-4 8086 CPU与8088 CPU的主要区别是什么?
2-5 8086 CPU地址线有多少位?其寻址范围是多少?
2-6 8086 CPU和8088 CPU如何解决地址线和数据线的分时复用?ALE信号何时处于有效电平?
2-7 简述段基地址、偏移地址和物理地址的概念及其相互关系。
2-8 总线周期是什么?时钟周期是什么?一个典型的总线周期最小包括几个时钟周期?
2-9 复位后,8086/8088系统中,CS和IP中的值分别是多少?
2-10 8086 CPU的状态标志寄存器中,控制用标志位有哪些?而哪些是不可用指令操作的?
2-11 ARM7TDMI中存储器单元是如何管理的?有无Cache?支持Thumb指令吗?
2-12 试分别简述ARM的7种基本工作模式。
2-13 S3C44B0X中集成了哪些模块?
2-14 S3C44B0X的LCD控制器使用什么存储器作为显示存储器?
2-15 当异常产生时,ARM要完成什么工作?当返回时又要完成什么工作?
2-16 ARM有哪些异常类型?在复位后,ARM处理器处于何种模式?何种状态?
2-17 ARM状态下可以使用哪些寄存器?Thumb状态下又可以使用哪些寄存器?
2-18 为什么要使用Thumb模式,与ARM相比,Thumb有哪些优势?为什么?
2-19 简述LR、PC、SPSR和SP寄存器的用途。
2-20 ARM7TDMI有几种操作方式,分别进行叙述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。