一、ARM7的体系结构(一)每种单片机的区别在于内核前段时间学****的以51为核的单片机,现在正在学****ARM9,实际上是以ARM处理器为核的单片机,51为核的单片机就是把中央处理器,存储器,输入输出设备集成在一个芯片内的芯片,ARM处理器为核的单片机就是把ARM处理器,存储器,输入输出设备集成在一个芯片内的芯片。对于ARM处理器来说,对外围的操作都是对外围设备的寄存器的操作,也就是对地址的操作。(外围设备如串口,定时器等等,他们也有相应的寄存器)。但是ARM处理器里面有37个32位寄存器,31个通用寄存器,6个状态寄存器,这些寄存器都是不能同时被访问的,具体那些寄存器是可编程访问的,取决于微处理器的工作状态和运行模式。但在任何时候,通用寄存器R0--R14、程序计数器PC、一个或两个状态寄存器都是可以访问的。ARM处理器都是一样的,只是生产厂家不同而有了像S3C2440这样的单片机等等,实际上这些都是在以ARM处理器外增加了许多外围而形成了单片机,然后在加些外围成了开发板。(二),,且都有一个地址,对于32位机来说,数据或代码有32位的,那么一个数据就需要四个单元来存,就涉及到顺序问题,也就是大端方式存和小端方式。,半字,字节操作(如图),ARM处理器的指令代码字节数是相同的,在Tumb指令集中,所有的指令代码都是16位2字节代码,在ARM指令集中,所有的指令代码都是32位4字节代码。,而51只有一种模式,可以访问全部资源。(三),常常赋予寄存器专用的助记符,也就是寄存器的名称,如下图:、R14、R15 R13作为堆栈指针,和51系列单片机中的SP一样。如果程序发生异常中断时,中断服务程序要把保护的寄存器值堆栈到R13指向的堆栈入口,在退出中断服务时,再把堆栈中的数据弹出来。如堆栈指令PUSH{R0,R4,R5}就是把R0,R4,R5这3个寄存器的值堆栈到R13指向的堆栈区,POP{R0,R4,R5}就是把R13指向的堆栈区的堆栈值弹回到R0,R4,R5中去。 R14作为连接寄存器LR,只是在子程序调用和程序中断时存储程序变化处的地址,且只存储一个32位地址。 R15作为程序计数器PC,它也可以用做其他功能,但是改变其值的时候要慎重,因为它是指向下一条指令的,随意改变会引起程序混乱。对于51系列的单片机,它总是指向正在执行的指令,对于ARM处理器,是多级流水线的结构,如ARM7,是3级流水线的结构,当ARM处理器在执行第一条指令的时候,第二条正在译码,第三条正在寻址,也叫预取指,所以它总是指向第3条指令,假设执行的是ARM指令,则R15的值=当前执行指令地址+8,假设执行的是Thumb指令,则R15的值=当前执行指令地址+
ARM存储器寄存器体系结构介绍 来自淘豆网www.taodocs.com转载请标明出处.