2011-02-27 58 views
1

我已经了解到,字长是一个ISA功能,必须在硬件和软件中实现。我对于答案只有一个模糊的想法。我需要更正或确认。字长是否成为CPU中通用寄存器的大小?字长是否成为编译器的'int'的大小(只是简单的int,不是长或短)?如何在硬件和软件中实现ISA的字长?

回答

0

硬件实现:字长是CPU一次读取的字节数,也可以称为机器的自然大小。尽管电脑没有什么自然之处。它在实现中也成为CPU寄存器的大小,因为它需要寄存器来存储它所提取的内容。话虽如此,可以使用更大的寄存器来存储目的。 IA-32软件(字长32位)可以在x86-64上运行(字长64位)。 软件实现:字长变成'int'的大小(只是普通的int,不长,很短)

2

word长度是系统本地处理的位数。现在的通用版本是32位字和64位字。

例如,一个字节可以包含0-255之间的数字。但是,32位整数是从0-4,294,967,295。整数是系统的本机“字长”,因此在32位系统中宽度为4字节,因此比0-255大得多。

事实上,在许多系统/编译器/等等。小于系统本地字大小的类型将被转换为该字大小,因为它比试图将多个值放入单个字中更有效。例如,一个布尔值可以用一个位来表示。但是,如果您编写一个使用32个布尔值的软件,它不会将它们全部压缩成一个单词。当它在金属上运行时,每个单词都将被分配自己的单词。

+0

@Neera我已经修改了这个问题,以便更清楚地知道我正在寻找哪些信息。请随时再次阅读并回答。 – KawaiKx 2011-02-28 01:56:42