Tôi hoàn toàn hiểu một hệ thống 32 hoặc 64 bit có nghĩa là gì. về cơ bản tất cả các thanh ghi hoặc độ dài từ là 32 hoặc 64 bit.Cách một byte bộ nhớ được truy cập bởi CPU trong bộ nhớ 32 bit và bộ xử lý 32 bit
Để đơn giản, chúng ta hãy sử dụng hệ thống 32 bit và nói rằng tôi đang viết một chương trình trong C. nếu tôi khai báo kiểu int nói "int a = 5;" sau đó một vị trí bộ nhớ của một chiều dài từ được dành riêng cho var a. vì vậy khi tôi muốn truy cập nó, tôi có thể làm như vậy bằng cách sử dụng địa chỉ từ cho vị trí bộ nhớ đó.
Nhưng nói tôi có 4 ký tự "char a, b, c, d;" vì nó là một byte, tất cả chúng được đặt trong một từ, vì vậy tôi phải làm gì nếu tôi muốn truy cập char b? (nói rằng bộ nhớ là byte địa chỉ) bây giờ nói b là byte thứ ba trong từ ... . Sau đó, nó đi vào xe buýt như thế nào? is'nt the 3rd byte cứng có dây đến 17th đến 24 dòng trong xe buýt? vậy điều gì sẽ xảy ra với 24 dòng khác khi chỉ b đang được truy cập?
Kiểm tra ngôn ngữ máy, ngôn ngữ lắp ráp, cho CPU cụ thể đó, đặc biệt là các bộ phận về địa chỉ bộ nhớ và thanh ghi CPU. – theglauber
@deepak, Trên nền tảng 32 bit hỗ trợ địa chỉ byte, có thể ghi một byte đơn vào bộ nhớ bằng ba byte khác được ghi (theo các tín hiệu Bật tắt Byte). –
@EricZ, bây giờ điều gì sẽ xảy ra nếu byte tôi muốn là byte thứ hai (bắt đầu đếm từ số không) trong bộ nhớ? thường khi tôi truy cập một từ trong bộ nhớ, byte thứ hai nằm giữa vị trí bit 23 - 16 của thanh ghi. Nhưng trong trường hợp này, nó sẽ phải hạ cánh ở vị trí 7 - 0. Điều này làm tôi bối rối vì tôi nghĩ rằng bit 0 từ bộ nhớ được kết nối với đất lên ở bit 0 của thanh ghi, và bit 31 đến bit 31. Tôi nghĩ nó là tất cả trong mạch, vậy làm thế nào có thể một bit được cho là đất ở vị trí bit 16, đất lên ở vị trí 0 trong khi truy cập byte? – deepak