首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]关于freescale的C语言

[求助]关于freescale的C语言

在freescale的C语言中,如何判定有进位位是否被置‘1’?
例如在PIC中只需判定
if(CARRY)
{
.....
}
就可以了。
在freescale的C语言中是否有同样的标志位呢?
如果没有,应如何判定?
谢谢!
C语言中好象没有对应的助记符,起码908GP32系列没有。只有汇编可以实现,为CCR位操作(置0/1)、CCR转移(跳转)指令,另外还可以用位测试指令BRCLR 0,CCR,*、BRSET 0,CCR,*来解决,总之要用C则很麻烦。
学后而问
CodeWarrior中定义了处理器标志位的判别函数,请参看《HC08_Compiler.pdf》的第372页。也可以看CodeWarrior的help中的“Read Processor Flags”章节。
海纳百川  有容乃大
真的呀,还是斑竹厉害,承教了——
Carry C __isflag_carry
Half carry H __isflag_half_carry
Overflow V __isflag_overflow
Interrupt pin high I __isflag_int
Interrupt enable M __isflag_int_enabled

Example:
if(__isflag_carry()) goto label
学后而问
谢谢版主!
再问一下,需要INCLUDE什么头文件,我在编译时出错了,说
Implicit parameter-declaration for "__isflag_carry()"
应该只是警告,不会出错的。这个警告对程序没有影响。
海纳百川  有容乃大
哦,知道了,谢谢!
返回列表