我完全理解32位或64位系統的含義。所以基本上所有的寄存器或字長都是32或64位。CPU如何在32位內存和32位處理器中訪問單字節內存
爲了簡單起見,讓我們拿一個32位的系統,並說我用C編寫了一個程序,如果我聲明一個int類型的話說「int a = 5;」那麼一個字長的存儲位置被保留給var a。所以當我想訪問它時,我可以使用該地址的字地址。
但是說我有4個字符「char a,b,c,d;」因爲它是一個字節,每個都放在一個字中,所以如果我只想訪問char b?(說內存是字節可尋址的)現在說b是這個字中的第三個字節,我該怎麼辦......那麼它是如何來到公共汽車的?是不是第三個字節在總線上連接到第17到第24行?所以當只有b被訪問時,其他24行會發生什麼?
檢查特定CPU的機器語言,彙編語言,尤其是有關內存尋址和CPU寄存器的部分。 – theglauber
@deepak,在支持字節尋址的32位平臺上,可以在寫入其他三個字節(根據字節使能信號關閉)的情況下將一個字節寫入存儲器。 –
@EricZ,現在如果我想要的字節是內存中的第二個字節(從零開始計數)會發生什麼?通常當我從內存中訪問一個字時,第二個字節在寄存器的第23 - 16位之間出現。但是在這種情況下,它必須在位置7-0處着陸。這使我感到困惑,因爲我認爲存儲器的第0位連接到寄存器的第0位,第31位連接到第31位。我認爲這是全部在電路中,所以在字節訪問期間,應該如何在位位置16處着陸,位於位置0? – deepak