• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

问个傻傻的问题

if(CMP1&0x02) dir=1; //根据比较器状态设置增量方向
else dir=0;
cpdir=dir; //保存dir副本
while(cpdir==dir) //在增量方向改变是退出
{
if(dir) //标志为1时,增加TH0
{
if(TH0==0xff) //当TH0为0xFF是退出
{
cpdir=~cpdir;


这些要是改成汇编语言得怎么写啊,我还不会C可是只找到了C的资料,我也弄不明白什么意思,C语言我是会一些,可还是有些不懂,dir\cpdir\还有这个符号~是什么意思呢if(dir):"如果dir" 这又该说明什么呢
全部回复(3)
正序查看
倒序查看
at90c51
LV.3
2
2008-04-06 14:52
~ 表示数据取反 1变成0,或0变成1 dir 它们是个变量
0
回复
2008-04-07 21:56
本来想用汇编写一下的.不过用了C真的不想再用汇编了.

dir/cpdir是变量,相当于 xx equ xxH

~楼上的兄弟说了,是取反,

if(dir)就是说如果dir是真值,就是非零.相当于

MOV A,dir
JZ A,XXX1
....

XXX1:
0
回复
at90c51
LV.3
4
2008-04-08 09:13
@zj47988302
本来想用汇编写一下的.不过用了C真的不想再用汇编了.dir/cpdir是变量,相当于xxequxxH~楼上的兄弟说了,是取反,if(dir)就是说如果dir是真值,就是非零.相当于MOVA,dirJZA,XXX1....XXX1:
是的,A为1是跳转

学会汇编好啊!
0
回复