导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:please help me![flyfish]

 *第1432篇: C51编程:please help me!

  
楼 主:flyfish 2001年12月10日18:17
 C51编程:please help me!
各位论坛朋友:
你们好!
近一个月来,我边学c51边编程,感觉收益挺大,用c编程比汇编编程,可读性可修改性强多
了,我就是看了论坛而决定用c51编程,并且论坛各位朋友的精彩解答帮我解决了许多的疑
惑,感谢论坛!
我在最近的编程中碰到一个比较奇怪的现象,请各位朋友帮忙。
c语句:
#define uchar unsigned char
uchar data org_bj_state;
void check_port(void)
{
 ACC=P0;
 ACC^=org_bj_state;
}
translate通过,no warnings,no errors
其.src汇编语句为:
mov a,p0
mov a,org_bj_state
xrl a,acc
看其汇编语句,与我设想的要求显然不同,我将上段c语句改为如下:
void check_port(void)
{
 uchar temp_data;
 temp_data=P0;
 temp_data^=org_bj_state;
 ACC=temp_data;
}
则其汇编的语句执行过程为:
读取P0口的值,将P0口的值与存储器org_bj_state中值异或,结果送A中.

通过上边的现象,我发觉在c51中累加器A有一些特别使用注意的地方,从买的c51的书中又查
不到有关A的特别注意的地方,请各位朋友解惑?(是否因为^的两边运算对象为变量,而A不合
规定)

  
2楼:老古 2001年12月11日04:39
 在c语言里,不要对a 和r0-r7,dptr等操作。
  
3楼:《农民运动讲习所》所长 2001年12月11日09:37
 除了R0-R7,其它都可直接操作,只不过注意在不被改变的条件下使用。

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:C51编程:请教老古:MON51调试时,程序DOWN下去后PC指针为什么老是0,而不是定制的0X80

[下一篇主题]:初学者:请教各前辈小弟想做一个万年历, 用DS1302的电路图及程序先谢了,