当前位置: 首页 > news >正文

嵌入式学习笔记 - SH79F6441芯片之8051的寻址空间,位寻址与字节地址寻址

首先看下图

由上图可见,

① 8051单片机的可位寻址以及不可位寻址的寄存器的地址是混在一起的

② 能被8整除的寄存器字节地址可以进行位寻址,其他字节地址不可以位寻址

以上图中字节地址A8H为例,字节A8H地址的寄存器名称为IEN0,这个寄存器如下所示

这个寄存器是可以位寻址的,8051特意把它的地址设置为8可以整除,既可以用字节地址去寻址它,也可以用位寻址去寻址它,

使用sfr IEN0 = A8H 能寻址到这个寄存器的所有位,

或者使用sbit EX0 = A8H,sbit EPCA0 =A9H, 。。。也能寻址到这个寄存器的所有位

这里就会出现一个问题,那么A9H岂不是有两个寄存器地址,一个是A8H的第2位EPCA0,一个是IEN1起始地址, 那么A9H到底访问的是那个地址?

这时候就要靠编译器根据8051的寻址方式的特殊性来自动区分:

使用 sfr A9H 只能寻址到IEN1,这时候编译器将其判断为字节寻址

使用sbit A9H,这时候编译器将其判断为位寻址,而且只能寻址到EPCA0,因为A9H不可以位寻址,

这也就是8051只设置能被8整除的地址可位寻址的原因,就是使用A9H这种地址位寻址的时候,防止编译器编译的时候出现不同的物理地址,只可能有一个物理地址,因为字节地址A9H不能位寻址。

使用A9H位寻址时,被编译器编译为位寻址后,单片机的物理设计通路,只能通到EPCA0这个寄存器物理地址。

http://www.dtcms.com/a/577714.html

相关文章:

  • 项目推荐:BettaFish (微舆) - 当多智能体遇上“论坛”协作机制
  • 跑通Visual-RFT报错解决记录
  • 学习网站二次开发如何自己设置网站
  • 自定义配置打印参数,进行打印功能
  • 免费看电视的网站有哪些深圳响应式网站价格
  • 如何给网站划分栏目利用html5 监控网站性能
  • MySQL原生账号权限管理
  • C#中关于ContextMenuStrip批量添加Item的问题
  • 从线程基础到线程池
  • Android selinux policy单独编译与调试
  • XML介绍
  • 营销推广运营 网站wordpress关闭主循环
  • Linux MTD系统深度解析:从原理到实践
  • css第二天
  • Spring Boot 3.2 高性能架构实战:虚拟线程、原生镜像与响应式编程全解析
  • [vulhub靶机通关]DC-5(文件包含_sreen提权_)
  • 网站建设数据收集方法网站没建好可以备案吗
  • 返利网站开发计划书免费创建社区论坛网站
  • [Avoid-MPC] AvoidanceStateMachine | `Step`心跳函数 | Callback设计
  • Web 前端开发调试实战,从桌面浏览器到真机 WebView 的全链路可视化调试指南
  • FreeRTOS函数说明
  • 营销软件网站建设陕西省建设网官网首页
  • 网站团购功能怎么做wordpress移除工具栏
  • 确定性革命:从观察宇宙到编程现实
  • 【模板】二维前缀和 (牛客)
  • 品牌网站设计公司哪家好百度seo整站优化公司
  • wordpress做单页销售网站西部网站管理助手 伪静态
  • 如何用faiss强化基于mysql的文本检索
  • C++面试4-线程同步
  • 【LeetCode热题100(62/100)】搜索二维矩阵