標誌寄存器:CF、PF、AF、ZF、SF、TF、DF、OF

注:下面說到的標誌寄存器都是縮寫,C就是CF,其他也一樣

標誌寄存器:C、P、A、Z、S、T、D、O的內容只會是0或1,0表示假,1表示真
在這裏插入圖片描述

  • O:溢出標誌
    一個寄存器如果存放的值超過所能表示的範圍,就稱爲溢出,O溢出時被置爲1,否則,O的值被清爲0。
    比如說EAX存放的最大值是11111111…(32個)轉成16進制是7FFFFFFF,如果再加一就會溢出,我們用OD,修改當前的EAX值爲7FFFFFFF,在執行add eax,1就會溢出,觀察O標誌位。
    在這裏插入圖片描述
    執行,O標誌位爲1了,表示發生了溢出
    在這裏插入圖片描述
  • P:奇偶標誌位,偶數爲1,奇數爲0,
    一條指令的結果轉爲二進制,偶數個1,P=1,奇數個1,P=0.
    當前EAX的值爲0,0個1,所以P=1
    在這裏插入圖片描述
    我們讓eax加1,十六進制的1轉爲二進制,1的個數爲奇數,所以P=0
    在這裏插入圖片描述
  • Z:0標誌,如果一條語句的計算結果是0,Z=1,不是0,Z=0
    EAX修改成-1,再加1
    在這裏插入圖片描述
    我們可以看到,結果爲0,Z=1
    在這裏插入圖片描述
  • S:符號標誌位,如過指令運算結果是負數,S=1,反之,S=0
    在這裏插入圖片描述
    我們看到現在的EAX是-8,我們讓EAX加1,結果是-7,S=1
    在這裏插入圖片描述
  • C:進位標誌位,無符號運算的結果超過寄存器存放的最大值,C=1,沒有超過,C=0
    在這裏插入圖片描述
    設置EAX爲FFFFFFFF,此時爲EAX存放的最大值,再讓EAX加一,C=1
    在這裏插入圖片描述

A、T、D基本用不到,A是輔助進位標誌位,T是定時器溢出標誌,D是方向標誌位,就不詳細介紹了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章