如果某个结构在字节可寻址内存中占用 10 位怎么办?
What if some structure occupies 10 bits in a byte addressable memory?
假设该结构在字节可寻址内存中从 address/index 1000 处开始 - 系统将如何工作?这 byte/word 是否只是为了命名和易于访问而对其进行寻址?处理器如何确认下一个地址已经开始?
对于字节可寻址的处理器(这是我所知道的所有处理器),数据访问的最小粒度是单个字节。尽管访问通常以更大的字粒度(通常为 4 或 8 个字节)完成。
如果要从地址 0x1000
开始加载 10 个连续位,则需要从地址 0x1000
加载第一个字节,从地址 0x1001
加载第二个字节。但是,对于第二个字节,您还需要使用一些操作来屏蔽不需要的位。
另一件需要注意的事情是 CPU 中的寄存器大小通常是 32 位或 64 位。 10 位结构将难以使用,并且您在实践中不太可能看到。
假设该结构在字节可寻址内存中从 address/index 1000 处开始 - 系统将如何工作?这 byte/word 是否只是为了命名和易于访问而对其进行寻址?处理器如何确认下一个地址已经开始?
对于字节可寻址的处理器(这是我所知道的所有处理器),数据访问的最小粒度是单个字节。尽管访问通常以更大的字粒度(通常为 4 或 8 个字节)完成。
如果要从地址 0x1000
开始加载 10 个连续位,则需要从地址 0x1000
加载第一个字节,从地址 0x1001
加载第二个字节。但是,对于第二个字节,您还需要使用一些操作来屏蔽不需要的位。
另一件需要注意的事情是 CPU 中的寄存器大小通常是 32 位或 64 位。 10 位结构将难以使用,并且您在实践中不太可能看到。