- x86汇编与逆向工程:软件破解与防护的艺术
- (美)斯蒂芬妮·多马斯 (美)克里斯托弗·多马斯
- 545字
- 2025-02-10 16:05:43
2.3.2 位、字节和字
位(bit)是计算机使用的基本单位。但是,位太小,提供的应用空间有限。因此,计算机并不操作和处理单一的位,而是将字节(byte)作为最小的内存单元来运作。在所有现代系统中,一个字节由8位组成。
尽管字节比位大,但它们对于很多操作来说仍然太小。计算机被设计为一次最佳地访问某一确定数量的字节。这个数量的字节被称为字(word),通常是2的幂,并且在不同的计算机之间可能会有所不同。例如,微控制器的字比较小,通常使用包含1个或2个字节(8位或16位)的字。通用计算机的字通常为4个或8个字节(32位或64位)。

图2.2 Windows计算器中的进制转换
位、字节和字是处理内存时最重要的术语,但并非唯一的。以下是一些常用术语:
• 位:取0或1。
• 字节:8位。
• 半字节(nibble):4位。
• 双字节:16位。
• 四字节(quad-byte):32位。
• 字:取决于架构,一定数量的字节。
• 半字(halfword):一半的字。
• 双字(doubleword,简称DWORD):两个字。
• 四字(quadword,简称QWORD):包含四个字的单位。
• 八字(octoword)、双四字(double quadword,简称DQWORD):由八个字组成。
本书主要研究32位架构。在传统的32位架构中,一个字是32位。但这是x86架构的一个独特之处。由于x86保持了与原始16位架构的向后兼容性,因此在x86架构中,一个字是16位,而一个双字则是32位。
提示:在32位x86架构中,一个字节是8位,一个双字是32位。