字寻址存储器和字节寻址存储器是什么意思?
答案 0 :(得分:4)
这通常用于底层硬件的上下文中。现在大多数系统都有字节寻址存储器。也就是说,存储器中的每个字节都可以单独寻址和获取。
某些系统具有字寻址存储器,而指针寄存器包含单个字的地址。此外,无论何时获取内存,都会获取整个单词。如果需要一个特定的字节,编译器将获取一个字,然后安排从中获取所需的字节。
请注意,在类似这样的系统上,在指针上使用reinterpret_cast是非常危险的,因为实现可能(为了效率)保持指向字对齐的指针作为字指针,并指向字节对齐的东西作为字节指针。所以如果你的记忆看起来像这样:
word X : aa ab ac ed
word X+1: ba bb bc bd
指向单词X的指针将包含X,但指向aa的字节指针将包含X * 4
reinterpret_cast<word *>(&aa)
会给你一个X * 4的单词指针,这将是一个令人尴尬的错误。
在字节寻址的机器上,字和字节指针都将包含X * 4,因此在两者之间重新解释广播是“安全的”(也就是说未定义的行为和混淆)。
答案 1 :(得分:0)
同意Tom ...在字访问存储器中,当访问存储器时可以有4个字节(如在AHB总线中)对于这种类型的存储器,如果你尝试访问字节,你将得到未定义的行为