ARM体系的应用领域已经非常广泛。
ARM指令集的特点:
1.一个大的统一寄存器文档
2.存、取数据处理仅仅通过操作寄存器,未直接操作内存
3.简单的指令模式,
4.标准的定长指令
另外,ARM体系提供了:
1.控制算术逻辑运算和移位的溢出
2.自动增加、减地址,使地址循环使用得到优化
3.加载和存储多条指令,已达到最大的吞吐量
4.大多数的指令都是条件执行的,为了达到最大的吞吐量
增强型的RSIC体系使得ARM处理器获得性能、低功耗、小代码量和体积小之间得到了很好地平衡。
ARM有31个32bit通用处理器。任何时刻都有16个是当前可以访问的。其他的寄存器都用于异常处理。所有的当前可访问寄存器,在ARM中都可以通过指定的地址访问。
用户模式的限制:
1.仅仅允许用户模式通过指令SWI切换到特权模式。
2.用户模式很少的允许去访问内存系统和协处理器。
这16个寄存器中,有三个被指定了特殊的功能:
栈指针(R13):通常作为栈指针SP,在ARMv6 指令集中,通过指令SRS和RFE来操作R13寄存器来实现PUSH和POP操作
链接寄存器:寄存器R14又称为LR(Link Register),这个寄存器保留了下一条指令的地址。这个地址可以是从异常模式中返回,也可以是调用子函数,通常就是指下一条指令。
程序指针:R15又称为PC,他可以装载大多数的指令,装载的这条指令将在两条指令执行后执行。在ARM指令集中,都是以4字节对齐(一个32bit word)。这意味着PC低两位始终是0.Thumb处理器状态支持T variants。Jazelle处理器状态支持J variants。他们的PC分别是以半字和字节对齐。
剩下的13个寄存器没有特殊目的。他们的使用纯粹由软件定义的。