我正在学习8051,并且发现它很难理解byte addressable和bit addressable。
答案 0 :(得分:0)
一种支持对单个数据字节进行唯一访问的硬件体系结构。
例如,让我们假设一个数字0x1234(0001001000110100)。当将数字存储在可字节寻址的系统上时,数据的第一个字节(00010010)获得第二个字节(00110100)的唯一地址,即存储器中对齐的每个字节将是唯一可寻址的。您只能以8位的块来操作内容。
然而,在微控制器寄存器的情况下,数据被存储,如果你可以逐位操作它的内容,它被称为位可寻址。
答案 1 :(得分:0)
它们并没有真正使用正确的术语,字节可寻址是我们习惯用来表示地址或内存空间中唯一字节的地址。位可寻址意味着存储空间中的每个位都具有唯一的地址,但实际情况并非如此。他们只是告诉你如何制作一些可以访问单个位的宏/变量,不是8051的东西,而是一个泛型编程的东西,特别是在C中使用变量类型或关键字(或只是宏)为它们的编译器实现。
他们告诉你的是他们有这个sbit声明,除非它只是一个宏,显然不是C标准声明。但是没有你可以做同样的事情。他们为你做的只是一点点操纵。通常设置第5位你会做类似
的事情variable |= (1<<5);
清除第5位
variable&=~(1<<5);
并且您当然可以从中创建宏以使其更通用。他们为这个编译器所做的是允许你声明一个变量,它是某个其他变量中的单个位,然后是那个位大小的变量,你可以设置为1或0。