寄存器
1. RO (間址寄存器)
R0并非實(shí)際存在的寄存器。它的主要功能是作為間接尋址指針。任何以RO為指針的指令實(shí)際上是對(duì)RAM
選擇寄存器R4所指的數(shù)據(jù)進(jìn)行操作。
2. R1 (定時(shí)器/計(jì)數(shù)器)
由TCC引腳的邊沿(由CONT-4: TE 設(shè)定)或指令周期時(shí)鐘觸發(fā)加1操作。
可讀寫(xiě)。
●
通過(guò)設(shè)置PAB (CONT-3) 來(lái)定義。
●
如果PAB位(CONT-3) 被清零,可將預(yù)除器分配給TCC.
只有當(dāng)寫(xiě)入TCC寄存器時(shí),預(yù)分頻計(jì)數(shù)器的內(nèi)容被清零。
3. R2 (程序計(jì)數(shù)器)和堆棧
●
根據(jù)控制器的類型,R2和硬件堆棧為10位寬。參見(jiàn)圖3所示的程序計(jì)數(shù)器結(jié)構(gòu)圖。
●
產(chǎn)生1024x13位片內(nèi)OTP ROM地址以獲取對(duì)應(yīng)的程序指令編碼。- 一個(gè)程序頁(yè)是1024字長(zhǎng)。
●
在復(fù)位狀態(tài)下R2所有位被清零。
●“JMP"指令直接裝載R2低10位值。因此“JMP"可以讓PC在一個(gè)程序頁(yè)中任意跳轉(zhuǎn)。
“CALL”指令裝載PC的低10位值,并交PC+1的值入棧。因此子程序的入口地址可以一個(gè)程序頁(yè)
任意地方。
●
"RET” ("RETk", “RETI")指令將棧頂?shù)臄?shù)據(jù)裝載到PC中。
●
"ADD R2, A"允許把A的內(nèi)容加到當(dāng)前PC.上,同時(shí)PC的第9位和第10位被清零。
●
“MOVR2,A"允許將A寄存器的內(nèi)容裝載到PC的低8位,同時(shí)PC的第9位和第10位被清零。
任何對(duì)R2進(jìn)行直接修改的指令(如:“ADDR2,A"、“MOVR2,A"、“BCR2, 6"、....都將會(huì)
引起PC的第9、10位清零,因此產(chǎn)生的跳轉(zhuǎn)只限于- -程序頁(yè)前256個(gè)地址。
●除了改變R2的指令需要2個(gè)指令周期外,其余的指令只需要一一個(gè)指令周期。