字节可寻址和位寻址之间的主要区别是什么?

时间:2017-03-20 11:59:26

标签: embedded microcontroller cpu-architecture 8051

我正在学习8051,并且发现它很难理解byte addressablebit addressable

a addressable SPF

2 个答案:

答案 0 :(得分:0)

一种支持对单个数据字节进行唯一访问的硬件体系结构。

例如,让我们假设一个数字0x1234(0001001000110100)。当将数字存储在可字节寻址的系统上时,数据的第一个字节(00010010)获得第二个字节(00110100)的唯一地址,即存储器中对齐的每个字节将是唯一可寻址的。您只能以8位的块来操作内容。

然而,在微控制器寄存器的情况下,数据被存储,如果你可以逐位操作它的内容,它被称为位可寻址。

答案 1 :(得分:0)

它们并没有真正使用正确的术语,字节可寻址是我们习惯用来表示地址或内存空间中唯一字节的地址。位可寻址意味着存储空间中的每个位都具有唯一的地址,但实际情况并非如此。他们只是告诉你如何制作一些可以访问单个位的宏/变量,不是8051的东西,而是一个泛型编程的东西,特别是在C中使用变量类型或关键字(或只是宏)为它们的编译器实现。

他们告诉你的是他们有这个sbit声明,除非它只是一个宏,显然不是C标准声明。但是没有你可以做同样的事情。他们为你做的只是一点点操纵。通常设置第5位你会做类似

的事情
variable |= (1<<5);  

清除第5位

variable&=~(1<<5);

并且您当然可以从中创建宏以使其更通用。他们为这个编译器所做的是允许你声明一个变量,它是某个其他变量中的单个位,然后是那个位大小的变量,你可以设置为1或0。