首页 理论教育 ARM基本数据类型-ARM体系结构与嵌入式C语言编程技术

ARM基本数据类型-ARM体系结构与嵌入式C语言编程技术

时间:2023-10-19 理论教育 版权反馈
【摘要】:ARM采用的是32位架构,ARM的基本数据类型有以下3种:Byte:字节,8 bit:Halfword:半字,16 bit;Word:字,32 bit。长度为1个字的数据项占用一组4字节的位置,该位置开始于4的倍数的字节地址。注意以下几点:ARMv4以上版本支持以上3种数据类型,ARMv4以前版本仅支持字节和字。当将这些数据类型中的任意一种声明成unsigned类型时,n位数据值表示范围为0~2n-1的非负数,使用二进制格式。

ARM基本数据类型-ARM体系结构与嵌入式C语言编程技术

ARM采用的是32位架构,ARM的基本数据类型有以下3种:

(1)Byte:字节,8 bit:

(2)Halfword:半字,16 bit(半字必须与2字节边界对齐);

(3)Word:字,32 bit(字必须与4字节边界对齐)。

与x86的独立编址机制不同,ARM存储器采用统一编址方式,存储器可以看作序号为0~232-1的线性字节阵列,内存、Flash、I/O空间、I/O特殊功能寄存器等存储单元都将映射到这个4GB的线性空间中。独立编址的每个存储单元都有自己独立的地址(比如有2个存储单元的地址都为0x0),因此,为了区分这些存储空间的存取操作,需要在指令上进行区分设计。统一编址的好处是:存储空间统一映射,地址全局唯一,那么统一使用诸如LDR、STR指令访问即可。

其中每一个字节都有唯一的地址,字节可以占用任一位置。长度为1个字的数据项占用一组4字节的位置,该位置开始于4的倍数的字节地址(地址最末两位为00)。半字占有两个字节的位置,该位置开始于偶数字节地址(地址最末一位为0)。

注意以下几点:(www.xing528.com)

(1)ARMv4以上版本支持以上3种数据类型,ARMv4以前版本仅支持字节和字。

(2)当将这些数据类型中的任意一种声明成unsigned类型时,n位数据值表示范围为0~2n-1的非负数,使用二进制格式。

(3)当将这些数据类型的任意一种声明成signed类型时,n位数据值表示范围为-2n-1~2n-1-1的整数,使用二进制的补码格式。

(4)所有数据类型指令的操作数都是字类型的,如“ADD r1,r0,#0x1”中的操作数“0x1”就是以字类型数据处理的。

(5)Load/Store数据传输指令可以从存储器存取传输数据,这些数据可以是字节、半字、字。加载时自动进行字节或半字的零扩展或符号扩展。对应的指令分别为LDRB/STRB(字节操作)、LDRH/STRH(半字操作)、LDR/STR(字操作)。

(6)ARM指令编译后是4个字节(与字边界对齐)。Thumb指令编译后是2个字节(与半字边界对齐)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈