2011-02-27 44 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