【问题标题】:What is the main difference between byte addressable and bit addressable?字节可寻址和位可寻址之间的主要区别是什么?
【发布时间】:2017-03-20 11:59:25
【问题描述】:

我正在学习8051,发现byte addressable和bit addressable很难理解。

【问题讨论】:

  • 在你写的电脑里至少有一个 8051,如果不是更多的话,这个网站所在的每台服务器都有几个,是免版税的,而且有几个芯片供应商有自己的内核永远使用它,它仍然被广泛使用,当然可能是你今天体验的手臂核心数量的十分之一到二十分之一,但它仍然是一个非常广泛使用的核心,以一种你通常可能不知道的方式埋藏在事物中。跨度>
  • 请在 SO 上发布问题,不要使用链接、复制粘贴或根据需要重新输入。
  • @old_timer 非常有用的信息!!根本不知道这个。
  • @old_timer:如果您提到键盘控制器,那不是 8051,而是 8048。这对于本机 USB 键盘和鼠标无效..
  • 不,不是在谈论键盘,尽管键盘和鼠标也使用了 8051。任何时候你有一些足够复杂的状态机或初始化,你不想冒险使用纯状态机,你可以将 8051 或 z80 转储到设计中,并让电路板设计人员连接包含固件的闪存。非常受网络组件欢迎。所以一些笔记本电脑级别和其他网络物理等会有它们,但肯定有相当数量的服务器级东西包含它们。

标签: embedded microcontroller cpu-architecture 8051


【解决方案1】:

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

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

但是,如果微控制器寄存器是存储数据的,如果您可以逐位操作其内容,则称为可位寻址。

【讨论】:

    【解决方案2】:

    他们并没有真正使用正确的术语,字节可寻址是我们习惯使用的地址,表示内存或内存空间中的唯一字节。位可寻址意味着内存空间中的每个位都有一个唯一的地址,但事实并非如此。他们只是向您展示如何制作一些可以访问各个位的宏/变量,这不是 8051 的东西,而是通用编程的东西,并且专门在 C 中使用变量类型或关键字(或只是宏)为其编译器实现。

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

    variable |= (1<<5);  
    

    清除第 5 位

    variable&=~(1<<5);
    

    您当然可以从中制作宏以使其更通用。他们为这个编译器所做的就是允许你在其他变量中声明一个单个位的变量,然后你可以将该位大小的变量设置为 1 或 0。

    【讨论】:

    • 所以在这种情况下,也许每个位都有自己的地址(寄存器),而字节就像其他位一样只是一个并行地址(寄存器)?
    猜你喜欢
    • 2019-11-05
    • 2011-02-13
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 2014-12-09
    相关资源
    最近更新 更多