以下是引用zc512sch在2020/6/26 10:54:03的发言:
请教各位大佬,这个程序w15左移位时w94的加法运算为什么会影响w15数值呢(相当于w15左位移后w15会自动+1)?我试过把w94替换成任何w位都会影响w15,这是为什么?
[此贴子已经被作者于2020/6/29 16:13:53编辑过]
因为ROL指令叫做带CY位的移位指令。
因此,CY位将移入最低位。
而+指令,CY位受到进位的影响,而在图片中,W94所能表示的最大数值是#FFFF,当它和常数#FFFF相加时,势必产生进位,从而影响了CY位。
由于ROL指令受到CY位的影响,而+指令影响着CY位,因此造成所谓的移位+1的效果。
要消除CY位的变化对于ROL指令的影响,应该紧接着可能影响CY位的指令后对CY位进行设置或者清除。
Good Luck~