当前位置: 代码迷 >> 综合 >> 关于对齐中word-aligned,word,dword,Half-Word等容易混淆的一些概念的随笔
  详细解决方案

关于对齐中word-aligned,word,dword,Half-Word等容易混淆的一些概念的随笔

热度:71   发布时间:2023-11-04 03:24:07.0

在开发过程中常常遇到一个字这种单位,那么一个字到底是个什么概念呢?

在计算机中最基础的单位是一个位(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)
 

  相关解决方案