今天犯傻了,突然想不明白,为啥一个数据cpu能够分辨出来是数据还是地址

50 篇文章 1 订阅
23 篇文章 0 订阅

今天犯傻了,突然想不明白,为啥一个数据cpu能够分辨出来是数据还是地址,为啥还能根据分辨出来的是地址,从地址总线发出,分辨出来的是数据,从数据总线发出。。。好吧,有那么瞬间,我呆掉了~~~~后来想明白了

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

cpu如何区分一个数据,如0x20000300是地址还是数据呢,比如#define  rcon  (*(*0x20000300))
然后  rcon = 234;
此时cpu为什么能判断rcon是地址,然后将对应的位从地址总线发出,能判断234是数据位,从数据总线发出
c编译器编译的时候,会经历一步翻译成汇编语言的过程,比如rcon = 234这句会翻译成ldr r1,0x200000,然后,ldr [r1],234,编译器将C代码这样翻译之后,r1发出去的时候,是使用 寻址来发的,而寻址指令是硬件指令集,是从硬件电路得到的,那样译码的时候,电路里面对应的地址数据复用引脚会进行相应的选择,相应的内部门电路啥的就会变,数据最终从地址引脚发出。

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值