冯 ·诺伊曼计算机系统结构的主要内容之一便是“程序预存储,计算机主动履行”!处理器要履行的程序(指令序列)都是以二进制代码序列方法预存储在计算机的存储器中,处理器将这些代码逐条地取到处理器中再译码、履行,以完结整个程序的履行。为了确保程序能够接连地履行下去,CPU有必要具有某些手法来确认下一条取指指令的地址。程序计数器(PC )正是起到这种效果,所以一般又称之为‘指令计数器’。CPU总是依照PC的指向对指令序列进行取指、译码和履行,也便是说,终究是PC 决议了程序运转流向。故而,程序计数器(PC )归于特别功用寄存器领域,不能自由地用于存储其他运算数据。
在程序开端履行前,将程序指令序列的开始地址,即程序的第一条指令地点的内存单元地址送入PC,CPU依照 PC的指示从内存读取第一条指令(取指)。当履行指令时,CPU主动地修正PC的内容,即每履行一条指令PC添加一个量,这个量等于指令所含的字节数(指令字节数),使 PC总是指向下一条即将取指的指令地址。因为大多数指令都是按次序来履行的,所以修正PC 的进程一般仅仅简略的对PC 加“指令字节数”。
当程序搬运时,搬运指令履行的终究成果便是要改动PC的值,此PC值便是转去的目 标地址。处理器总是依照PC 指向取指、译码、履行,以此完成了程序搬运。
ARM 处理器中运用R15 作为PC,它总是指向取指单元,而且ARM 处理器中只要一个PC 寄存器,被各形式共用。R15 有32 位宽度(下述标记为R15[31:0],表明R15 的‘第31位’到‘第0位),ARM 处理器能够直接寻址4GB的地址空间(2^32 = 4G )。
(解说什么是字对齐什么是半字对齐)存储器是计算机中用于回忆数据信息的电子设备,它经过回忆“高/低”电平回忆“1/0”能回忆 1 位“1/0”数据的电子单元,称之为存储元,计算机中的存储器一般将每8 个这样的存储元组成一个单元,称之为字节,字节是处理器拜访存储器的最小单位。ARM 处理器对存储器空间的拜访分辨率以字节为最小单位;ARM 处理器还支撑 16bit 数据(2 字节)的存储器拜访和 32bit数据(4 子节)的存储器拜访。在ARM 中将32 位的数据称之为‘字’,将 16 位的数据称之为‘半字’。
ARM 处理器在关于“字”/“半字”数据进行拜访时,对数据的存储格局是有要求的。要求被拜访的“半字”有必要存放在存储器紧邻的两个字节单元,而且首字节地址有必要能被2整除,这样存储的 16bit 数据称为 ‘半字对齐’存储数据,16bit 数据这样的存储方法称为 ‘半字对齐’存储。相似的,ARM 处理器在进“字”数据拜访时,要求被拜访的“字”有必要 存放在存储器紧邻的4 个字节单元,而且首字节地址有必要能被4 整除,这样存储的32bit 数 据称为‘字对齐’存储数据,32bit 数据这样的存储方法称为‘字对齐’存储。
能被2 整除数据的二进制表明,其最低位一定是‘0’;能被4 整除数据的二进制表明,
其最低两位一定是‘00’。ARM 系统要求32 位长的ARM 指令在存储器中有必要字对齐存储,
16 位长的 Thumb 指令有必要半字对齐存储。因而,在ARM 状态下,R15的值总是能被4 整
除,也便是R15 寄存器的最低2 位总是 0;Thumb 状态下,R15 的值总是能被2 整除,也便是R15 寄存器的最低位总是0。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/258485.html