建设申请网站,做网站合同模板,北京网站建设及优化,没备案的网站能用吗ARM属于RISC体系#xff0c;许多指令单周期指令#xff0c;是32位读取/存储架构#xff0c;对内存访问是32位#xff0c;Load and store的架构#xff0c;只有寄存器对内存#xff0c;不能内存对内存存储#xff0c;CPU通过寄存器对内存进行读写操作。 ARM的寻址空间是线…ARM属于RISC体系许多指令单周期指令是32位读取/存储架构对内存访问是32位Load and store的架构只有寄存器对内存不能内存对内存存储CPU通过寄存器对内存进行读写操作。 ARM的寻址空间是线性地址空间典型的32位地址下空间大小为232 4G. 注X86 寻址是段偏移量
1.数据类型
字节类型Byte:数据宽度为8bits 半字节类型Halfword:数据宽度为16bits,存取时一般要求为2字节对齐。 字数据类型Word:数据宽度为32bits,存取时一般要求4字节对齐
2.数据对齐
在V6架构之前数据访问都必须针对要访问的大小把访问的地址进行对齐没有对齐的地址将会导致出现“数据中止”异常在数据存取或指令预取时都可能出现。 没有对齐的地址数据可以通过多个对齐地址数据以为/掩码操作来实现。 ARM V6架构添加了新的硬件来支持未对齐的数据访问。
3.数据存储的大小端问题
大小端问题时指数据在计算机内存中的字节顺序问题它决定了寄存器的内容和内存内容的格式关联。 ARM寄存器时字宽就是4字节。而内存寻址是按照字节顺序的。 采用大端方式符合人类的正常思维小端方式有利于计算机处理无优劣之分。 ARM支持大端Big-endian和小端Little-endian的内存数据方式可以通过硬件的方式设置端模式也可以通过软件的方式来设置(V6版本以上)
大端格式Big-endian 最低地址是该数据的地址A 最高有效字节(MSB, Most Signifcant Byte) 放内存低地址A 最低有效字节LSB,Least Significant Byte放内存高地址A3
小端格式Little-endian 最低地址是该数据的地址A 最高有效字节(MSB, Most Signifcant Byte) 放内存高地址A3 最低有效字节LSB,Least Significant Byte放内存低地址A
大小端具体实例 变量AWord A 0x f6 73 4b cd,在内存中的起始地址为0xb3 20 45 00 变量Bhalf word B 218,在内存中的起始地址为0x dd dd dd d0