1、ARM作业形式
从编程的视点来看,ARM微处理器的作业状况一般有两种,并可在两种作业状况之间进行切换:
△:第一种为ARM状况,此刻处理器履行32位的的字对齐的ARM指令。
△:第二种为Thumb状况,此刻处理器履行16位的、半字对齐的Thumb指令。
当ARM微处理器履行32位的ARM指令集时,作业在ARM状况;
当ARM微处理器履行16位的Thumb指令集时,作业在Thumb状况。
在程序的履行过程中,微处理器能够随时在两种作业状况之间切换,而且,处理器作业状况
的改动并不影响处理器的作业形式和相应寄存器中的内容。
1)存储器格局
ARM体系结构将存储器看作是从零地址开端的字节的线性组合。
从零字节到三字节地址放置地一个存储的字(32位)数据,从第四个字节到第七个字节
放置第二个存取器的子数据,顺次排序。
作为32位的微处理器,ARM体系结构所支撑的最大寻址空间为4GB。
ARM体系结构能够用两种办法存储字数据,称之为大端格局和小端格局。
△:大端格局:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
△:小端格局:与大端格局正好相反。
2)作业形式
ARM微处理器支撑7种作业形式,分别为:
a、用户形式(usr)
b、快速间断形式(fiq)
c、外部间断形式(irq)
d、管理形式(svc)
e、数据拜访停止形式(abt)
f、体系形式(sys)
g、未定义指令间断形式(und)
留意:
ARM微处理器的运转形式能够经过软件改动,也能够经过外部间断或许反常处理改动。
应用程序运转在用户形式下,当处理器运转在用户形式下时,某些被3维护的体系资源是不能被拜访的。
除用户形式外,其他的6种形式称为非用户形式或许特权形式(Privileged Modes);
其间出去用户形式和体系形式以外以外的5种又称为反常形式(Exception Modes),常用语处理间断或许反常,以及要拜访受维护的体系资源等状况。
2、ARM寄存器(根据ARM状况)
先贴张图片,一看就理解了:
1)通用寄存器
R0-R7
这意味着在所有处理形式下,拜访的都是同一个物理寄存器。未分组寄存器没有被体系用于特别的用处,
任何可采用通用寄存器的场合都能够运用为分组寄存器。
△:分组寄存器:
R8-R14
关于R8-R12:FIQ形式分组寄存器R8-R12以及FIQ以外的分组寄存器R8-R12
关于R13-R14:寄存器R13一般用于仓库指针SP
△:程序计数器
R15(PC)
寄存器R15也被用作程序计数器,也成为PC。其值等于当时正在履行的指令的地址+8。
由于在取址和履行之间多了一个译码的阶段(这个我也不是很懂,便是知道要加两个字)~~
△:状况寄存器
CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq
3、ARM寄存器(根据Thumb状况)
仍是直接上图,这个是跟ARM状况相比较的:
4、CPSR/SPSR
一张图片搞定: