1、在設計指令系統時,51系統中增加了位尋址指令,由于是8位的系統,自然是用一個字節區分指令(本碼表示尋址了),一個字節表示尋址哪一個(本碼指向欲尋的位),這時關鍵字來了,8位只能區分256個位址了)。【用雙字節指令位尋址,后一個字節指向要尋的位】
2、51系統中給了用戶128個位,它們對應在RAM的20H-2FH這16個字節上,20H.0位對指令的00H,2FH.7對應指令的7FH。(指令的第二個字節)
3、51系統中的許多特殊寄存器也是非常需要位尋的,特殊突破口有128個字節(地址從80H-FFH),全部位尋需要1024個位。如前所述,總共256位,用戶用去128位,還剩余128位,合算成字節,也只能位尋16個字節。
4、于是將特殊突破口80-FFH中,選出能被8整除的地址字節(80H,88H,90H...F0H,F8H),恰好16個字節的128位,分配給了剩余的位尋址。
5、其中80H.0(也就是P0.0口)對應指令碼80H,88H.6(也就是TCON.6 = TR1)對應指令碼8EH。
6、明白以上,就知道:TMDO(89H),SBUF(99H)是不可以位尋址的了(地址不是8的整數倍)。
以上是個人對51的理解與猜想。
51的位尋功能,這其最靈活的特點。許多其它系統,無獨立的位尋址指令。
|