寄存器变量定义.doc

上传人:白大夫 文档编号:3432804 上传时间:2019-08-25 格式:DOC 页数:2 大小:15KB
返回 下载 相关 举报
寄存器变量定义.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《寄存器变量定义.doc》由会员分享,可在线阅读,更多相关《寄存器变量定义.doc(2页珍藏版)》请在三一文库上搜索。

1、寄存器变量定义寄存器变量定义ARM汇编器对ARM的寄存器进行了预定义,所有的寄存器和协处理器名都是大小写敏感的。预定义的寄存器如下:1,Ro-R15和r0-r152,a1-a4(参数,结果或者临时寄存器,与r0-r3同意)3,v1-v8(变量寄存器,与r4-r11同意)4,sb和SB(静态基址寄存器,与r9同意)5,sl和SL(堆栈限制寄存器,与r10同意)6,fp和FP(帧指针,与r11同意)7,ip和IP(过程调用中间临时寄存器,与r12同意)8,sp和SP(堆栈指针,与r13同意)9,lr和LR(连接寄存器,与r14同意)10,pc和PC(程序计数器,与r15同意)11,cpsr和CPS

2、R(程序状态寄存器)12,spsr和SPSR(程序状态寄存器)13,f0-f7和F0-F7(FPA寄存器)14,s0-s31和S0-S31(VFP单精度寄存器)15,d0-d15和D0-D15(VFP双精度寄存器)16,p0-p15(协处理器0-15)17,c0-c15(协处理器寄存器0-15)C语言寄存器变量register用register声明的变量是寄存器变量,是存放在CPU的寄存器里的。而我们平时声明的变量是存放在内存中的。虽说内存的速度已经很快了,不过跟寄存器比起来还是差得远。寄存器变量和普通变量比起来速度上的差异很大,毕竟CPU的速度远远大于内存的速度。寄存器有这么两个特点,一个是

3、运算速度快,一个是不能取地址。学过C的都应该知道每一个变量在内存中都占有一定的的空间,来存放数据。但是在寄存器中的变量是不能取地址的,编译器会报错。来我们看看寄存器变量和普通话的变量的速度到底能差多少。这段代码运行用了0.952秒这段代码运行用了0.094秒实际使用时,底层硬件环境的实际情况对寄存器变量的使用会有一些限制。每个函数中只有很少的变量可以保存在寄存器中,且只允许某些类型的变量。但是,过量的寄存器声明并没有什么害处,这是因为编译器可以忽略过量的或者不支持的寄存器变量声明。另外,无论寄存器变量实际上是不是存放在寄存器中,它的地址都是不能访问的。在不同的机器中,对寄存器变量的数目和类型的

4、具体限制也是不同的。几条关于register变量应该知道的东西,如下:1.寄存器变量可以用来优化加速c语言程序2.声名只需在类型前多加register 即可,eg register int quick; (quick 就是一个整形的寄存器变量)3.register只是一个建议型关键字,能不能声名成功还取决于编译器(建议型的关键字还有c+中的 inline),若不幸没有请求成功,则变量变成一个普通的自动变量。4.是无法对一个register变量取地址的(因为寄存器变量多放在寄存器而非内存中,内存有地址,而寄存器是无地址的)5.即便没有请求成寄存器变量,没有如愿的放入寄存器中,但是,依然不能对他取地址,因为他已经被声明为register了,就是这么任性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1