51特殊功能寄存器
1)累加器A或特殊功能寄存器ACC
累加器為8位寄存器,用于存放操作數(shù),也可用來(lái)存放運(yùn)算的中間結(jié)果。A和ACC雖是同一個(gè)寄存器,但是在指令中它們卻是有區(qū)別的。符號(hào)指令中的A不能用ACC代替,特殊功能寄存器直接尋址和位名稱(chēng)尋址要用ACC,而不能用A代替。累加器自身帶有零標(biāo)志Z,累加器的值為0,零標(biāo)志Z=1;累加器的值不為0,零標(biāo)志Z=0
2)數(shù)據(jù)指示器(Data Pointer)
51中唯一能出現(xiàn)在符號(hào)指令中的一個(gè)16位寄存器。DPTR既可按16位寄存器使用,又可以分為兩個(gè)8位的寄存器使用,即DPH和DPL。DPTR通常用作訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器或擴(kuò)展I/O的間接地址存儲(chǔ)器,還可以和累加器A一起用作程序存儲(chǔ)器的變址寄存器。
3)程序狀態(tài)字存儲(chǔ)器PSW
PSW是一個(gè)8位的寄存器,用于存放程序運(yùn)行的狀態(tài)信息。有些位的狀態(tài)是根據(jù)程序操作的結(jié)果,由硬件自動(dòng)設(shè)置;有些則由指令設(shè)置。PSW的位狀態(tài)可以用專(zhuān)門(mén)的指令進(jìn)行測(cè)試,也可以用指令讀出。一些條件轉(zhuǎn)移指令就是根據(jù)PSW有關(guān)位進(jìn)行程序轉(zhuǎn)移的。PSW各位定義如圖
進(jìn)位或借位標(biāo)志CY(PSW.7):功能有二:一是存放加減運(yùn)算的進(jìn)(借)位;二是在位操作指令中作累加位C使用
輔助進(jìn)位標(biāo)志AC(PSW.6):加減運(yùn)算中的低4位向高4位有進(jìn)位或借位則AC=1,無(wú)進(jìn)位或借位則AC=0
溢出標(biāo)志位OV(PSW.2):計(jì)算機(jī)所進(jìn)行的運(yùn)算都是無(wú)符號(hào)數(shù)運(yùn)算,即把符號(hào)數(shù)的符號(hào)位也當(dāng)作數(shù)值進(jìn)行運(yùn)算,又把所有數(shù)的運(yùn)算結(jié)果當(dāng)符號(hào)數(shù)來(lái)影響溢出標(biāo)志位。OV=1表示溢出。
奇偶標(biāo)志位P(PSW.0):表示累加器中數(shù)的奇偶性。P根據(jù)累加器中1的個(gè)數(shù)是奇數(shù)或是偶數(shù),自動(dòng)置1或清0。
寄存器組選擇位RS1和RS0(PSW.4和PSW.3):見(jiàn)圖
通用標(biāo)志位F0和F1(PSW.5和PSW.1):可位尋址用于軟件控制的通用標(biāo)志位。有的匯編器只定義了F0,用戶(hù)可使用位定義偽指令BIT將PSW.1定義為標(biāo)志位F1。
4)堆棧和堆棧指示器SP
51單片機(jī)的棧的伸展方向是從低地址向高地址,堆棧操作是字節(jié)操作。
評(píng)論