汇编中byte,word,dword的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编中byte,word,dword的问题相关的知识,希望对你有一定的参考价值。

就是一开始在声明时,我不知道哪些该声明称什么属性的,感觉木有区别……求高手指教

byte是字节,也就是8位。用来储存char或者char类型指针。
word是字,也就是16位。用来储存16位整数或者16位地址。
dword是双字,也就是32位。可以用来储存32位整数或者32位内存地址。
在汇编中使用和占用的空间和寄存器大小不同。
参考技术A 长度区别。。。
byte 1字节
word 字,两字节
dword 双字,4字节,double word 的简写

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

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

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

以上是关于汇编中byte,word,dword的问题的主要内容,如果未能解决你的问题,请参考以下文章

让 gcc 将一系列 BYTE 比较转换为 WORD/DWORD/QWORD

在c++ mfc中出现byte word dword 有啥实用意义

汇编笔记一计算机数据宽度与逻辑运算

《汇编语言基础教程》第一章

汇编语言的基本数据类型

汇编语言中LABEL伪指令的功能?