TMS320F280039C: CSS的编译后转汇编的疑问

Part Number: TMS320F280039C

问题描述:

        相同的语句写法,不同的汇编结果;如图:

        C语言如图1:

                                  图1 C语言例句

        

                                 图2 对应汇编

       如图,图2为图1的反汇编,图2中红线框中会执行对图1中变量BatLogic.BatStatus的对应bit位直接清0;后再对对应位赋值。

      图1中BatLogic.BatStatus定义位Uint16,田间语句中blOutput也为Uint16定义,blBatUnConnectFlg为具体的位定义。

     我的疑问是,在相同的工程中,不同的变量,相同的定义,相同的写法,甚至C语句的右值为同一条件,转换的汇编不一致,如图3,和图4所示

                图3 类似的C语言例句

                  图4  对应汇编

         如图3图4所示,图4红框中的AH为缓存寄存器,此时这个操作,并不会直接把PVLogic中的位变量置为0;与图2存在巨大区别。

         请问为什么会有此差异?