这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 能解释一下吗?

共10条 1/1 1 跳转至

能解释一下吗?

菜鸟
2009-05-14 13:15:32     打赏
#define DipSwitch XBYTE [0xFF80]
以上语句怎么理解,怎么解释.谢谢.



关键词: 能解释     一下    

高工
2009-05-14 13:45:13     打赏
2楼
这是一个宏定义。
程序中其他处的DipSwitch在编译时都用XBYTE [0xFF80]来代替,而XBYTE又是另一个宏定义,是一个指针操作,用来片外寻址。XBYTE [0xFF80]就是一个片外地址的寄存器。


助工
2009-05-14 13:50:00     打赏
3楼
同意Jason_Zhang的解释

助工
2009-05-16 07:57:59     打赏
4楼

对的


助工
2009-05-16 08:13:39     打赏
5楼
我C不太熟哦,再问一句:怎么判断第二个宏定义就是片外寻址,而不是片内的地址呢?FF80H是片外地址?

高工
2009-05-16 09:34:08     打赏
6楼
你用的开发环境是哪个?MCU型号?
在Keil中 XBYTE的定义为:
#define XBYTE ((unsigned char volatile xdata *) 0)
xdata就是指片外寻址的变量,汇编时就是片外寻址。

助工
2009-05-16 11:07:40     打赏
7楼
明白了~~好像X有“外部”的意思,51单片机中MOVX也是读外部数据。

高工
2009-05-16 11:42:38     打赏
8楼

是的,在Keil中,根据存储空间可分为data, idata, pdata, xdata。具体含义我忘了,你可以google一下


助工
2009-05-16 12:36:18     打赏
9楼
Thanks ~~~找到了咯

高工
2009-05-16 13:05:25     打赏
10楼
不客气,当初我也困惑过这个问题

共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]