打印
[51单片机]

关于C8051F120赋值反汇编的疑惑

[复制链接]
1915|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
lyjian| | 2013-9-18 12:44 | 只看该作者
因为Timer3和Timer2地址是相同的

使用特权

评论回复
板凳
ayb_ice| | 2013-9-18 13:30 | 只看该作者
那要看TMR3是怎么定义的了(T1,T2,T3)

估计就是T2而已(T0,T1,T2)

使用特权

评论回复
地板
wt1987529|  楼主 | 2013-9-18 14:13 | 只看该作者
lyjian 发表于 2013-9-18 12:44
因为Timer3和Timer2地址是相同的

T2 T3是在同一地址 但是位于不同的页面(特殊寄存器分页)。
按照你的意思是 反汇编是给同一地址不同页面的寄存器同时赋值?望指正。

使用特权

评论回复
5
wt1987529|  楼主 | 2013-9-18 14:15 | 只看该作者
ayb_ice 发表于 2013-9-18 13:30
那要看TMR3是怎么定义的了(T1,T2,T3)

估计就是T2而已(T0,T1,T2)

120 5个定时器  T0.T1.T2.T3.T4   TMR3 就是T3的

使用特权

评论回复
6
ayb_ice| | 2013-9-18 14:51 | 只看该作者
你看一下各自定义不就知道了,

极有可能那不在一个SFR页里面?

使用特权

评论回复
7
ayb_ice| | 2013-9-18 14:56 | 只看该作者
此定义说明了一切
sfr TMR2L         = 0xCC; /* TIMER/COUNTER 2 LOW BYTE */
sfr TMR3L         = 0xCC; /* TIMER 3 LOW BYTE */
sfr TMR4L         = 0xCC; /* TIMER/COUNTER 4 LOW BYTE */
sfr TMR2H         = 0xCD; /* TIMER/COUNTER 2 HIGH BYTE */
sfr TMR3H         = 0xCD; /* TIMER 3 HIGH BYTE */
sfr TMR4H         = 0xCD; /* TIMER/COUNTER 4 HIGH BYTE */

使用特权

评论回复
8
lyjian| | 2013-9-18 16:18 | 只看该作者
wt1987529 发表于 2013-9-18 14:13
T2 T3是在同一地址 但是位于不同的页面(特殊寄存器分页)。
按照你的意思是 反汇编是给同一地址不同页面 ...

不是。
我的意思是:反汇编只认识00~FF的数据,它不认识你在什么页面或者给哪个数据赋予了什么样的符号名称。

使用特权

评论回复
9
ayb_ice| | 2013-9-18 17:21 | 只看该作者
lyjian 发表于 2013-9-18 16:18
不是。
我的意思是:反汇编只认识00~FF的数据,它不认识你在什么页面或者给哪个数据赋予了什么样的符号名 ...

那只是你认为而已,
反汇编也是汇编,
使用前定义不就可以了

使用特权

评论回复
10
lyjian| | 2013-9-18 20:26 | 只看该作者
不是我的认为,是事实。
定义的符号是给人看的 不是给汇编看。所有符号都会通过编译器转成00~FF数据后才给到汇编。反汇编出来的符号是编译器通过生成的符号表查表得来的,如果多个符号是相同的数据的话,那这个数据只会被转成符号表中在前面的符号,而不会做到和写软件人的思维一样,一会是这个符号一会是那个符号。

使用特权

评论回复
11
sunhq02| | 2013-9-20 10:12 | 只看该作者
lyjian 发表于 2013-9-18 20:26
不是我的认为,是事实。
定义的符号是给人看的 不是给汇编看。所有符号都会通过编译器转成00~FF数据后才给 ...

是的
比较机械

使用特权

评论回复
12
sunhq02| | 2013-9-20 10:13 | 只看该作者
wt1987529 发表于 2013-9-18 14:13
T2 T3是在同一地址 但是位于不同的页面(特殊寄存器分页)。
按照你的意思是 反汇编是给同一地址不同页面 ...

不是同时赋值
而是在赋值前它会根据当前页面情况判断是否需要加上页面切换的指令
赋值只会赋值到当前页面的对应寄存器去

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝