2012年計算機等級三級:用寄存器的作用

字號:


    16位CPU內(nèi)部有一個16位的標志寄存器,它包含9個標志位。這些標志位主要用來反映處理器的狀態(tài)和運算結(jié)果的某些特征。各標志位在標志寄存器內(nèi)的分布如圖2.2所示。
    1514131211109876543210
    OFDFIFTFSFZF  AF  PF  CF
    31…17161514131211109876543210
    ……VMRF NTIOPLOFDFIFTFSFZF  AF PF CF
    圖2.2 16位/32位標志寄存器的示意圖
    上面9個標志位可分為二組:運算結(jié)果標志位(有背景色的標志位)和狀態(tài)控制標志位。前者受算術(shù)運算和邏輯運算結(jié)果的影響,后者受一些控制指令執(zhí)行的影響。
    更詳細的內(nèi)容請點擊:標志位的說明。
    有些指令的執(zhí)行會改變標志位(如:算術(shù)運算指令等),不同的指令會影響不同的標志位,有些指令的執(zhí)行不改變?nèi)魏螛酥疚唬ㄈ纾篗OV指令等),有些指令的執(zhí)行會受標志位的影響(如:條件轉(zhuǎn)移指令等),也有指令的執(zhí)行不受其影響。
    程序員要想熟練運用這些標志位,就必須掌握每個標志位的含義、每條指令的執(zhí)行條件和執(zhí)行結(jié)果對標志位的作用。
    注意:雖然知道每個標志位在標志寄存器內(nèi)的具體位置是有好處的,但通常情況下,沒有這個必要。在使用第5.2.9節(jié)中的“條件轉(zhuǎn)移指令”時,系統(tǒng)會自動引用相應(yīng)標志位的值來決定是否需要“轉(zhuǎn)移”的,所以,不分強調(diào)標志位在標志寄存器內(nèi)的具體位置。