AT89S51單片機內(nèi)部有一個位處理機,對位地址空間具有豐富的位操作指令。
1.?dāng)?shù)據(jù)位傳送指令
這組指令的功能是把由源操作數(shù)指定的位變量送到目的操作數(shù)指定的單元中。其中一個操作數(shù)必須為進(jìn)位標(biāo)志,另一個可以是任何直接尋址位,不影響其他寄存器或標(biāo)志位。例如:
注意,這里的06H是位地址,20H是內(nèi)部RAM的字節(jié)地址。06H是內(nèi)部RAM 20H字節(jié)位6的位地址。
2.位變量修改指令
這組指令將操作數(shù)指定的位清O、求反、置1,不影響其他標(biāo)志位。例如:
3.位變量邏輯與指令
第1條指令的功能是,直接尋址位與進(jìn)位標(biāo)志位(位累加器)進(jìn)行邏輯與運算,結(jié)果送回到進(jìn)位標(biāo)志位中。如果直接尋址位的布爾值是邏輯0,則進(jìn)位標(biāo)志位C清O,否則進(jìn)位標(biāo)志保持不變。
第2條指令的功能是,先對直接尋址位求反,然后與位累加器(進(jìn)位標(biāo)志位)進(jìn)行邏輯與運算,結(jié)果送回到位累加器中。該指令不影響直接尋址位求反前原來的狀態(tài),也不影響別的標(biāo)志位。直接尋址位的源操作數(shù)只有直接位尋址方式。
4.位變量邏輯或指令
第1條指令的功能是,直接尋址位與進(jìn)位標(biāo)志位Cy(位累加器)進(jìn)行邏輯或運算,結(jié)果送回到進(jìn)位標(biāo)志位中。如果直接尋址位的位值為1,則進(jìn)位標(biāo)志位置1,否則進(jìn)位標(biāo)志位仍保持原來的狀態(tài)。
第2條指令的功能是,先對直接尋址位求反,然后與位累加器(進(jìn)位標(biāo)志位)進(jìn)行邏輯或運算,結(jié)果送回到進(jìn)位標(biāo)志位中。該指令不影響直接尋址位求反前原來的狀態(tài)。
5.條件轉(zhuǎn)移類指令