找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2763|回复: 8
收起左侧

51单片机的地址冲突问题,怎么从物理层面来解释?

[复制链接]
ID:223571 发表于 2017-10-12 20:11 | 显示全部楼层 |阅读模式
特殊功能寄存器TMOD的字节地址为89H,TCON的字节地址为88H,那么TCON的第1位,sbit IE0=89H,而TMOD的第0位地址也为89H,sfr TMOD=89H,
虽然TCON可以位寻址,TMOD只能字节寻址,但是按我的理解是IE0和TMOD的第0位地址都是89H,
这是不是地址冲突了呢,怎么从物理层面来解释?




回复

使用道具 举报

ID:123289 发表于 2017-10-13 00:37 | 显示全部楼层
前两个指向一个8位的的地址,后一位指向的是1位的地址。
前面说的是“第89层楼”,后面说的是“第89号房间”,虽同是89,但不至于你弄错地方。
回复

使用道具 举报

ID:111634 发表于 2017-10-13 08:18 | 显示全部楼层
用c编程时,根本不需考虑地址,只用特殊功能寄存器名就可;用汇编编程时,89H在字节操作指令中是字节地址,在位操作指令中是位地址,CPU不会搞错,但初学者自己会搞错。
回复

使用道具 举报

ID:14237 发表于 2017-10-13 09:05 | 显示全部楼层
这样理解:89H号房间与89H号床位的区别,没毛病。
回复

使用道具 举报

ID:223571 发表于 2017-10-13 10:53 | 显示全部楼层
yzwzfyz 发表于 2017-10-13 00:37
前两个指向一个8位的的地址,后一位指向的是1位的地址。
前面说的是“第89层楼”,后面说的是“第89号房间 ...

89层楼的第0号房间,和第89号房间,本质上不是一样的吗?感觉自己的思维有点死,,,


是不是还可以这样理解,字节地址对应的物理层面是“一栋楼A”,位地址对应的物理层面是另外“一栋楼B”,两个是分开独立的部分
回复

使用道具 举报

ID:239111 发表于 2017-10-13 11:08 | 显示全部楼层
执行的指令不一样,一个是字节处理指令,一个是位处理指令
回复

使用道具 举报

ID:111634 发表于 2017-10-14 13:46 | 显示全部楼层
蓝野 发表于 2017-10-13 10:53
89层楼的第0号房间,和第89号房间,本质上不是一样的吗?感觉自己的思维有点死,,,

89H是十六进制数,既可代表数据,又可代表地址。代表地址时,既可代表字节地址,又可代表位地址。如何区分呢?在字节操作指令中是字节地址,在位操作指令中是位地址。即汇编中,字节操作指令码后跟随的89H是字节地址,在位操作指令码后跟随的89H是位地址。注意!!!指令码不一样。CPU不会搞错,但初学者自己会搞错,你就是搞不明白的初学者之一。其实,你若用c编程,就根本不用管它,只要用特殊功能寄存器名(大写)表示就可,keil c会自动正确编译。若用汇编,你也不用管它,但是指令操作符(代表指令操作码)不能搞错。这就是为什么汇编编程比c编程难学的主要原因,汇编编程,除了NOP指令,每一条指令均与操作地址有关。
回复

使用道具 举报

ID:478073 发表于 2019-2-25 03:24 | 显示全部楼层
用c编程时,根本不需考虑地址,只用特殊功能寄存器名就可;用汇编编程时,89H在字节操作指令中是字节地址,在位操作指令中是位地址,CPU不会搞错,但初学者自己会搞错。
回复

使用道具 举报

ID:639665 发表于 2019-11-13 10:41 | 显示全部楼层
本人也是初学,迷惑了挺长时间了,直到看到了一张表。现附上,希望对你有帮助……
字节地址和位地址.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表