任何人都有明确的答案吗?
有人说在32位操作系统上,WORD意味着16位,是吗?
答案 0 :(得分:41)
通常,字大小是指处理器寄存器的大小。在32位处理器上,这将是32位。在64位处理器上,这将是64位。
处理器的位大小在某种程度上与OS的位大小无关。例如,您可以在64位处理器上运行32位窗口。您的字大小仍然是64位,但程序将无法处理整个处理器字。
在传统的Windows编程中,有一个名为WORD
的宏定义,其大小为16位。当处理器为16位时,这是有意义的。但是,即使编译包含32位或64位目标宏的代码,它仍然是16位。
让低级代码面向未来是很困难的,这是你(或微软)可能出错的一个例子:)
答案 1 :(得分:2)
这不是建立字大小但是你的机器架构的操作系统。 32位架构使用32位字。
答案 2 :(得分:1)
一个字是16位DWORD(双字)的大小是在编程时使用的32位字的大小的两倍但是......
操作系统中的Word名称是显示在操作系统中的数字,因此如果它说64位一个字(存储区为adres)在这种情况下为64位
所以它取决于您从编程或操作系统编号中查看它的角度
答案 3 :(得分:0)
没有明确的答案。
传统上,术语“字”是指处理器的寄存器和主数据路径的大小。按照这个定义,“字”在您的32位系统上为32位,在64位系统上为64位。
但是,当扩展处理器系列以添加更宽的寄存器/操作模式时,这些处理器的制造商和用户有时仍会使用“ word”来指代原始处理器的字长。当软件从一个处理器家族移植到另一个处理器家族时,也会发生同样的情况。
Intel x86文档使用术语“单词”¹表示16位数量。这种用法会渗入最初为x86开发的软件环境,例如Windows API和Borland风格的pascal。
另一方面,手臂文档使用术语“单词”²表示32位数量。
¹参见https://software.intel.com/sites/default/files/managed/a4/60/253665-sdm-vol-1.pdf
中的第4.1节²请参见https://static.docs.arm.com/ddi0487/db/DDI0487D_b_armv8_arm.pdf
中的A1.4节