| 狀態(tài)寄存器包含最近執(zhí)行的算術(shù)運(yùn)算的結(jié)果的有關(guān)信息。這些信息可以用來(lái)實(shí)現(xiàn)條件運(yùn)算,以改變程序流向。注意,狀態(tài)寄存器在所有的ALU運(yùn)算結(jié)束后才被刷新。在許多情況下,這將取代專用的比較指令,可以使得代碼更快、更緊湊。 當(dāng)進(jìn)入中斷程序時(shí),狀態(tài)寄存器不會(huì)自動(dòng)儲(chǔ)存;從中斷程序中返回時(shí),它也不會(huì)恢復(fù)到原值。這必須由軟件來(lái)處理。 SREG | 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | 讀/寫 | I | T | H | S | V | N | Z | C | | 初始值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ·位7-I:全局中斷使能 要想使能中斷,必須將該位置位。單個(gè)的中斷使能控制由單獨(dú)的控制寄存器完成。如果全局中斷使能位被清零,所有的中斷都被禁能,而不管它們的各自的中斷使能位如何設(shè)置。當(dāng)中斷產(chǎn)生后,I 位由硬件清零,然后由 RETI 指令置位,以使能后續(xù)的中斷。也可以在程序中使用 SEI 和 CLI 指令將 I 位置位或清零,詳見(jiàn)指令組。 (羅畝按:這個(gè)位與傳統(tǒng)的51架構(gòu)中的 IE 類似。) ·位6-T:位復(fù)制存儲(chǔ) 位復(fù)制(Bit Copy)指令BLD(Bit LoadD)和BST(Bit STore)使用T位作為操作位的源或目標(biāo)位。在寄存器文檔(Register File)中一個(gè)寄存器的一位,可以由 BST 指令復(fù)制到T中,而T中的一位也可由 BLD 指令復(fù)制到寄存器文檔中一個(gè)寄存器的位中。 ·位5-H:半進(jìn)位標(biāo)志 在一些算術(shù)運(yùn)算中,半進(jìn)位標(biāo)志 H 指示半進(jìn)位(Half Carry)。在BCD運(yùn)算中,半進(jìn)位很有用。 ·位4-S:符號(hào)們,S=N⊕V S位通常是負(fù)數(shù)標(biāo)志N和2的補(bǔ)碼溢出標(biāo)志V的異或。 ·位3-V:2的補(bǔ)碼溢出標(biāo)志 2的補(bǔ)碼溢出標(biāo)志V支持2的補(bǔ)碼運(yùn)算。 ·位1-N:負(fù)數(shù)標(biāo)志 負(fù)數(shù)標(biāo)志N指示在算術(shù)運(yùn)算或邏輯運(yùn)算中得出負(fù)的結(jié)果。(羅畝問(wèn):邏輯運(yùn)算也有負(fù)結(jié)果嗎?) ·位1-Z:零標(biāo)志 零標(biāo)志指示在算術(shù)或邏輯運(yùn)算中結(jié)果為零。 ·位0-C:進(jìn)位標(biāo)志 進(jìn)位標(biāo)志C指示在算術(shù)或邏輯運(yùn)算中出現(xiàn)進(jìn)位。 |