我定义了一个位变量 MyFlag.bits.CalibrationOk<br />定义方法如下<br />union{<br /> int FlagByte;<br /> struct{<br /> unsigned Ch4CanRead:1;<br /> unsigned Ch2CanRead:1;<br /> unsigned Ch1CanRead:1;<br /> unsigned AdValCanRead:1;<br /> unsigned CalibrationOk:1;<br /> }bits;<br />}MyFlag;<br /><br />可是在主程序按如下使用时<br />while(1)<br /> {<br /> MyFlag.bits.CalibrationOk = PORTBbits.RB11;<br /> }<br />他生成的汇编有一堆,<br /><img src="https://bbs.21ic.com/upfiles/img/20079/200791410550430.jpg"><br /><br />而不是简单的一两条位操作,是我的方法问题吗?<br />如何才能生成 mov bit ,bit 类似的指令呢? |
|