为什么AND AX AX 会影响六个状态标志位?自身相与的话明明没有改变什么啊?
问题描述:
为什么AND AX AX 会影响六个状态标志位?自身相与的话明明没有改变什么啊?
还有OR AX 原来标志位是什么,与过以后还是什么啊,我觉得就不影响啊,
答
AND是与指令,就是AX,AX相与,按照与操作,相同的数与是不变,所以执行指令后,AX的值不变,但逻辑运算指令会影响标志,所以6个状态标志会改变,与操作主要影响3个标志:PF,ZF,SF(这3个标志根据AX的结果来设定),进位标志CF和溢出标志始终清0,AF不确定.难道说是原来的标志位是不确定的,或者说是以前运算留下来的,然后经过这个与运算以后,就会对一些标志位进行改变吗?是这样吗?我原来好像是理解有问题了。原来的标志是上条指令影响的,但不是所有指令都会影响标志,像MOV这种传送指令就不会影响标志,但算术运算逻辑运算就会影响标志位,有时候我们执行指令并不要它的运算结果,而是要他的标志,所以指令执行后对标志的影响很重要