在开发过程中常常遇到一个字这种单位,那么一个字到底是个什么概念呢?
在计算机中最基础的单位是一个位(bit),而8个bit组成了一个字节(byte),这是最基础的概念,
但字这个单位却不同,它的大小取决于它所在的硬件平台与编译器:
首先我们常常说的 一个字word 占用2个字节 dword 就是4个字节,这个是基于X86平台的Windows环境。
例如在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
可见头文件的名字也是WINDEF.H。
以上这种概念基本上只要不是嵌入式开发都是正确的,什么JAVA,C#,C++ For WIndows都没问题,但在嵌入式编程中却又不同。
对于ARM架构的MCU来说
字(Word):字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。
半字(Half-Word):半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。
字节(Byte):32位/8位/16位处理器体系结构中,字节的长度均为8位。
ARM 采用的是32位架构.
ARM 约定:
Byte : 8 bits
Halfword :16 bits (2 byte)
Word : 32 bits (4 byte)