ARM有16个32位的寄存器(r0到r15)。
r15充任程序寄存器PC,r14(link register)存储子程序的回来地址,r13存储的是仓库地址。
ARM有一个当时程序状况寄存器:CPSR。
一些寄存器(r13,r14)在反常产生时会产生新的instances,比方IRQ处理器形式,这时处理器运用r13_irq和r14_irq
ARM的子程序调用是很快的,由于子程序的回来地址不需求寄存在仓库中。
1、ARM处理器共有37个寄存器,其间包含:
i. 31个通用寄存器,包含程序计数器(PC)在内。都是32位寄存器
ii. 6个状况寄存器,都是32位寄存器,但现在只运用了其间12位
2、ARM处理器有7种不同的处理器形式,在每一种处理器形式中有一组相应的寄存器组。恣意时间(也便是恣意的处理器形式下),可见的寄存器包含15个通用寄存器(R0~R14)、一个或两个状况寄存器及程序计数器(PC)。在所有的寄存器中,有些是各形式共用的同一个物理寄存器,有些是各形式自己具有的独立的物理寄存器。
3、通用寄存器能够分为3类:未备份寄存器(R0~R7)、备份寄存器(R8~R14)和程序计数器PC(R15)。关于每一个未备份寄存器来说,在所有的处理器形式下指的都是同一个物理寄存器。对应备份寄存器R8~R12来说,每个寄存器对应两个不同的物理寄存器,这使得中止处理十分简略。例如,只是运用R8~R14寄存器时,FIQ处理程序能够不用碑文保存和康复中止现场的指令,从而使中止处理进程十分敏捷。关于备份寄存器R13和R14来说,每个寄存器对应6个不同的物理寄存器,其间的一个是用户形式和系统形式共用的,别的的5个对应于其他5种处理器形式。
4、每一种反常形式具有自己的物理的R13。应用程序初始化该R13,使其指向该反常形式专用的栈地址。当进入反常形式时,能够将需求运用的寄存器保存在R13所指的栈中;当退出反常处理程序时,将保存在R13所指的栈中的寄存器值弹出。这样就使反常处理程序不会损坏被其间断程序的运转现场。
5、寄存器R14又被称为衔接寄存器(Link Register,LR),在ARM系统中具有下面两种殊的效果:
i.每一种处理器形式自己的物理R14中寄存当时子程序的回来地址。当经过BL或BLX指令调用子程序时,R14被设置成该子程序的回来地址。在子程序中,当把R14的值复制到程序计数器PC中时,子程序即回来。
ii.当反常中止产生时,该反常形式特定的物理R14被设置成该反常形式酿制回来的地址,关于有些反常形式,R14的值可能与将回来的地址有一个常数的偏移量。详细的回来方法与子程序回来方法根本相同。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/264472.html