打印

c51在keil中调试出现的问题,估计与编译有关,请教

[复制链接]
1863|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
h2thesun|  楼主 | 2009-7-18 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main()
{
unsigned int a1;
unsigned int b1;
unsigned char h;
unsigned char l;
a1=0xab12;
l=a1;
b1=(a1&0xff00)/256;
h=b1;
}

用KEIL调试时发现,a1变量中的值没有赋成ab12h,而只是赋成0012h.程序改成如下后,a1的赋值就正确了:

void main()
{
unsigned int a1;
unsigned int b1;
unsigned char h;
unsigned char l;
a1=0xab12;
l=a1;
a1=a1>>8;
h=b1;
}
请问这是什么原因呢?

相关帖子

沙发
ayb_ice| | 2009-7-18 16:28 | 只看该作者

你没有发现KEIL很聪明吗

使用特权

评论回复
板凳
寻乐的狼| | 2009-7-18 19:41 | 只看该作者

单片机是32位?

你是选择的32位的单片机吗

使用特权

评论回复
地板
h2thesun|  楼主 | 2009-7-19 14:35 | 只看该作者

回复2和3楼

2楼:这keil也太聪明了,怎么知道我不用它的高8位就不给赋值了?

3楼:是8位的。就是51.

使用特权

评论回复
5
myic200610| | 2009-7-19 14:43 | 只看该作者

RE

学习了

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝