标志寄存器:CF、PF、AF、ZF、SF、TF、DF、OF
生活随笔
收集整理的這篇文章主要介紹了
标志寄存器:CF、PF、AF、ZF、SF、TF、DF、OF
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
注:下面說到的標(biāo)志寄存器都是縮寫,C就是CF,其他也一樣
標(biāo)志寄存器:C、P、A、Z、S、T、D、O的內(nèi)容只會是0或1,0表示假,1表示真
- O:溢出標(biāo)志
一個寄存器如果存放的值超過所能表示的范圍,就稱為溢出,O溢出時被置為1,否則,O的值被清為0。
比如說EAX存放的最大值是11111111…(32個)轉(zhuǎn)成16進(jìn)制是7FFFFFFF,如果再加一就會溢出,我們用OD,修改當(dāng)前的EAX值為7FFFFFFF,在執(zhí)行add eax,1就會溢出,觀察O標(biāo)志位。
執(zhí)行,O標(biāo)志位為1了,表示發(fā)生了溢出
- P:奇偶標(biāo)志位,偶數(shù)為1,奇數(shù)為0,
一條指令的結(jié)果轉(zhuǎn)為二進(jìn)制,偶數(shù)個1,P=1,奇數(shù)個1,P=0.
當(dāng)前EAX的值為0,0個1,所以P=1
我們讓eax加1,十六進(jìn)制的1轉(zhuǎn)為二進(jìn)制,1的個數(shù)為奇數(shù),所以P=0
- Z:0標(biāo)志,如果一條語句的計算結(jié)果是0,Z=1,不是0,Z=0
EAX修改成-1,再加1
我們可以看到,結(jié)果為0,Z=1
- S:符號標(biāo)志位,如過指令運算結(jié)果是負(fù)數(shù),S=1,反之,S=0
我們看到現(xiàn)在的EAX是-8,我們讓EAX加1,結(jié)果是-7,S=1
- C:進(jìn)位標(biāo)志位,無符號運算的結(jié)果超過寄存器存放的最大值,C=1,沒有超過,C=0
設(shè)置EAX為FFFFFFFF,此時為EAX存放的最大值,再讓EAX加一,C=1
A、T、D基本用不到,A是輔助進(jìn)位標(biāo)志位,T是定時器溢出標(biāo)志,D是方向標(biāo)志位,就不詳細(xì)介紹了
總結(jié)
以上是生活随笔為你收集整理的标志寄存器:CF、PF、AF、ZF、SF、TF、DF、OF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园怎么删好友
- 下一篇: PUSHAD和POPAD,以及PUSHA