專利名稱:跳轉(zhuǎn)指令的處理方法及微控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種跳轉(zhuǎn)指令的處理方法及微控制器。
背景技術(shù):
目前,微控制器的應(yīng)用程序并不完全是順序執(zhí)行的,還包含了程序的跳轉(zhuǎn)。對于精簡指令集計算機(Reduced Instruction Set Computer 以下簡稱RISC)指令集而言,每條指令的寬度都是相同的。每條指令的寬度決定了跳轉(zhuǎn)指令對程序空間的尋址能力。換言之,在微控制器中,當(dāng)程序存儲空間小于跳轉(zhuǎn)指令的尋址空間時,一條跳轉(zhuǎn)指令可以使程序轉(zhuǎn)移到程序存儲空間的任一地址;而當(dāng)程序存儲空間大于跳轉(zhuǎn)指令的尋址空間時,一條跳轉(zhuǎn)指令則只能使程序在有限的程序存儲空間進行轉(zhuǎn)移,即并不能覆蓋整個程序存儲空間。如圖1所示,現(xiàn)有技術(shù)的微控制器包括兩個指令寄存器111和112、高位地址寄存器12以及程序計數(shù)器13。例如該微控制器中,程序存儲空間為8K,即該微控制器的程序計數(shù)器13的位寬為13位。一個跳轉(zhuǎn)指令的地址信息為10位。通過在微控制器中設(shè)置了高位地址寄存器12,在執(zhí)行跳轉(zhuǎn)指令之前,先將跳轉(zhuǎn)的目標(biāo)地址的高3位地址信息寫入高位地址寄存器12。在執(zhí)行跳轉(zhuǎn)指令時,對寫入指令寄存器111中的跳轉(zhuǎn)指令進行譯碼,以將指令寄存器111中的目標(biāo)地址的低10位地址信息和高位地址寄存器12中的目標(biāo)地址的高3位地址信息寫入程序計數(shù)器13中。再根據(jù)程序計數(shù)器13中的13位目標(biāo)地址將程序存儲空間中該13位目標(biāo)地址對應(yīng)的指令寫入指令寄存器112中,從而解決了當(dāng)程序空間大于跳轉(zhuǎn)指令的尋址空間時,跳轉(zhuǎn)指令尋址能力不足的問題,進而通過一條跳轉(zhuǎn)指令和高位地址寄存器中的高位地址信息,可以使程序轉(zhuǎn)移到程序存儲空間的任一地址。另外,在對指令寄存器111中的跳轉(zhuǎn)指令進行譯碼時,寫入指令寄存器112中的下一條指令將不能在下一個周期中運行,而是根據(jù)跳轉(zhuǎn)指令的執(zhí)行結(jié)果,即根據(jù)程序計數(shù)器13中的13位目標(biāo)地址信息將程序存儲空間中該13位目標(biāo)地址信息對應(yīng)的指令寫入指令寄存器112中?,F(xiàn)有技術(shù)中至少存在如下問題當(dāng)程序空間大于跳轉(zhuǎn)指令的尋址能力時,完成一次跳轉(zhuǎn)指令操作需要三個機器周期,即將目標(biāo)地址的高3位地址信息寫入高位地址寄存器為一個機器周期;對指令寄存器中的跳轉(zhuǎn)指令進行譯碼,以將指令寄存器中的低位地址信息和高位地址寄存器中的高位地址信息寫入程序計數(shù)器為一個機器周期;根據(jù)程序計數(shù)器的由高位地址信息和低位地址信息組成的目標(biāo)地址,將程序存儲空間該目標(biāo)地址對應(yīng)的指令寫入指令寄存器為一個機器周期,從而影響了微控制器的性能。
發(fā)明內(nèi)容
本發(fā)明提供一種跳轉(zhuǎn)指令的處理方法以及微控制器,從而有效的提高了微控制器對跳轉(zhuǎn)指令在程序空間的尋址能力,并提高了微控制器的執(zhí)行效率。本發(fā)明提供一種跳轉(zhuǎn)指令的處理方法,包括程序存儲器存儲跳轉(zhuǎn)指令,若所述跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,所述雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址,所述第二指令字包括第二操作碼和第二地址;控制器在當(dāng)前周期開始運行將所述第一指令字寫入第一指令寄存器時,將所述第二指令字寫入第二指令寄存器;所述控制器在確定所述第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第一地址和第二地址寫入程序計數(shù)器;所述控制器在下一周期根據(jù)所述程序計數(shù)器中的由所述第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第一目標(biāo)地址對應(yīng)的第一指令;并將所述第一指令寫入所述第二指令寄存器。本發(fā)明實施例提供一種微控制器,包括控制器、程序計數(shù)器、程序存儲器、第一指令寄存器和第二指令寄存器,其中所述程序存儲器,用于存儲跳轉(zhuǎn)指令,若所述跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,所述雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址,所述第二指令字包括第二操作碼和第二地址;所述控制器,用于在當(dāng)前周期開始運行將所述第一指令字寫入所述第一指令寄存器時,將第二指令字寫入第二指令寄存器;且在確定所述第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第一地址和第二地址寫入程序計數(shù)器;在下一周期根據(jù)所述程序計數(shù)器中的由所述第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第一目標(biāo)地址對應(yīng)的第一指令;并將所述第一指令寫入所述第二指令寄存器。本發(fā)明的跳轉(zhuǎn)指令的處理方法及微控制器,控制器通過在當(dāng)前周期開始運行將所第一指令字寫入第一指令寄存器時,將第二指令字寫入第二指令寄存器;且在對第一指令字的第一操作碼進行譯碼,并確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時, 將第一地址和第二地址寫入程序計數(shù)器;在下一周期根據(jù)程序計數(shù)器中的由第一地址和第二地址構(gòu)成的目標(biāo)地址,將程序存儲器中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到目標(biāo)地址對應(yīng)的指令;并將該指令寫入第二指令寄存器,從而通過一條跳轉(zhuǎn)指令可以使程序轉(zhuǎn)移到程序存儲器的任一地址,進而有效的提高了跳轉(zhuǎn)指令的尋址能力,并提高了執(zhí)行效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中微控制器的結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例一提供的跳轉(zhuǎn)指令的處理方法的流程圖;圖3為本發(fā)明實施例二提供的跳轉(zhuǎn)指令的處理方法的流程圖;圖4為本發(fā)明實施例三提供的微控制器的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一圖2為本發(fā)明實施例一提供的跳轉(zhuǎn)指令的處理方法的流程圖,如圖2所示,在本實施例中,以程序存儲器中包括跳轉(zhuǎn)指令為例,詳細本發(fā)明的技術(shù)方案,該方法包括步驟21、程序存儲器存儲跳轉(zhuǎn)指令,若跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,該雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,第一指令字包括第一操作碼和第一地址,第二指令字包括第二操作碼和第二地址;步驟22、控制器在當(dāng)前周期開始運行將第一指令字寫入第一指令寄存器時,將第二指令字寫入第二指令寄存器;步驟23、控制器在確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第一地址和第二地址寫入程序計數(shù)器;步驟對、控制器在下一周期根據(jù)程序計數(shù)器中的由第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將程序存儲器中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第一目標(biāo)地址對應(yīng)的第一指令;并將該第一指令寫入第二指令寄存器。在本實施例中,程序存儲器存儲的每個指令可以按照編號依序排列。在開始執(zhí)行時,控制器在程序計數(shù)器中寫入起始地址,并根據(jù)該起始地址,將該起始地址對應(yīng)程序存儲器中存儲的指令寫入到第一指令寄存器中。當(dāng)控制器在第一指令寄存器中對該指令進行譯碼時,程序計數(shù)器中的指針自動加一,即修改為起始地址的下一個地址,即第二地址,從而使控制器根據(jù)該第二地址,將程序存儲器中第二地址對應(yīng)的指令寫入到第二指令寄存器中。當(dāng)程序存儲器沒有存儲跳轉(zhuǎn)指令,并且控制器完成對第一指令寄存器中指令的譯碼時,第二指令寄存器將第二地址對應(yīng)的指令寫入到第一指令寄存器中,以使控制器對第一指令寄存器中的第二地址對應(yīng)的指令進行譯碼。同時,程序計數(shù)器中的指針自動加一,即修改為第二地址的下一個地址,即第三地址,從而使控制器根據(jù)該第三地址,將程序存儲器中第三地址對應(yīng)的指令寫入到第二指令寄存器中。這樣,控制器按照上述流水線原理,執(zhí)行完程序存儲器中的全部指令。當(dāng)程序存儲器包括跳轉(zhuǎn)指令,并且該跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,控制器通過在當(dāng)前周期開始運行將所第一指令字寫入第一指令寄存器時,將第二指令字寫入第二指令寄存器;且在對第一指令字的第一操作碼進行譯碼,并確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第一地址和第二地址寫入程序計數(shù)器;在下一周期根據(jù)程序計數(shù)器中的由第一地址和第二地址構(gòu)成的目標(biāo)地址,將程序存儲器中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到目標(biāo)地址對應(yīng)的指令;并將該指令寫入第二指令寄存器,從而通過一條跳轉(zhuǎn)指令可以使程序轉(zhuǎn)移到程序存儲器的任一地址,進而有效的提高了跳轉(zhuǎn)指令的尋址能力,并提高了執(zhí)行效率。實施例二圖3為本發(fā)明實施例二提供的跳轉(zhuǎn)指令的處理方法的流程圖,如圖3所示,在上述實施例一的基礎(chǔ)上,步驟23具體包括
步驟231、控制器對第一指令字的第一操作碼進行譯碼,以判斷第一操作碼是否為跳轉(zhuǎn)指令操作碼;步驟232、當(dāng)控制器判斷出第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第二地址寫入高位地址寄存器,并將第一地址和第二地址寫入程序計數(shù)器。在本實施例中,跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令,并包括第一指令字和第二指令字。其中,第一指令字包括跳轉(zhuǎn)指令操作碼和第一地址,第二指令字包括空操作碼和第二地址??刂破鲗懭氲谝恢噶罴拇嫫鞯牡谝恢噶钭值牡谝徊僮鞔a進行譯碼,以判斷第一操作碼是否為跳轉(zhuǎn)指令操作碼,當(dāng)判斷出第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第一地址和第二地址寫入程序計數(shù)器,從而修改了程序計數(shù)器中的地址信息,將跳轉(zhuǎn)的第一目標(biāo)地址寫入到了程序計數(shù)器中,具體的,第一地址為第一目標(biāo)地址的低位地址,第二地址為第一目標(biāo)地址的高位地址。值得一提的是,當(dāng)判斷出第一操作碼不是跳轉(zhuǎn)指令操作碼時,則控制器在第一指令寄存器中對指令進行譯碼時,程序計數(shù)器中的指針自動加一,即修改為起始地址的下一個地址,即第二地址,從而使控制器根據(jù)該第二地址,將程序存儲器中第二地址對應(yīng)的指令寫入到第二指令寄存器中,以作為下一個機器周期執(zhí)行的指令。另外,在步驟232中,將第二地址即跳轉(zhuǎn)指令的高位地址同時寫入到高位地址寄存器中,從而在執(zhí)行頁內(nèi)跳轉(zhuǎn)或者跨頁跳轉(zhuǎn)時,就不需要對高位地址寄存器中的地址進行更新,從而有效的提高了指令的執(zhí)行效率。進一步的,若跳轉(zhuǎn)指令為單字節(jié)跳轉(zhuǎn)指令時,該單字節(jié)跳轉(zhuǎn)指令包括第三操作碼和第三地址,則控制器在當(dāng)前開始運行將單字節(jié)跳轉(zhuǎn)指令寫入第一指令寄存器,并確定第三操作碼為單字節(jié)跳轉(zhuǎn)指令操作碼時,將第三地址和存儲在高位地址寄存器中的第四地址寫入程序計數(shù)器;控制器在下一周期根據(jù)程序計數(shù)器中由第三地址和第四地址構(gòu)成的第二目標(biāo)地址,將程序存儲器中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第二目標(biāo)地址對應(yīng)的第二指令;并將該第二指令寫入第二指令寄存器。值得一提的是,第三地址為第二目標(biāo)地址的低位地址,第四地址為第二目標(biāo)地址的高位地址。這樣,在本實施例中,對于跳轉(zhuǎn)指令執(zhí)行頁內(nèi)跳轉(zhuǎn)時,即可以通過單字節(jié)跳轉(zhuǎn)指令來完成跳轉(zhuǎn)指令的處理,從而節(jié)省了程序存儲器的空間;對于跳轉(zhuǎn)指令執(zhí)行跨頁跳轉(zhuǎn)時,則可以通過雙字節(jié)跳轉(zhuǎn)指令來完成跳轉(zhuǎn)指令的處理,從而提高了指令的執(zhí)行效率。實施例三圖4為本發(fā)明實施例三提供的微控制器的結(jié)構(gòu)示意圖,如圖4所示,該為控制器包括控制器31、程序計數(shù)器32、程序存儲器33、第一指令寄存器34和第二指令寄存器35。 其中,程序存儲器33,用于存儲跳轉(zhuǎn)指令,若跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,該雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,第一指令字包括第一操作碼和第一地址,第二指令字包括第二操作碼和第二地址;控制器31,用于在當(dāng)前周期開始運行將第一指令字寫入第一指令寄存器34時,將第二指令字寫入第二指令寄存器35 ;且在確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第一地址和第二地址寫入程序計數(shù)器32 ;在下一周期根據(jù)程序計數(shù)器32中的由第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將程序存儲器33中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第一目標(biāo)地址對應(yīng)的第一指令;并將第一指令寫入所述第二指令寄存器35。進一步的,該微控制器還包括高位地址寄存器36,用于存儲第二地址;則控制器 31具體用于根據(jù)對第一指令字的第一操作碼進行譯碼,以判斷第一操作碼是否為跳轉(zhuǎn)指令操作碼;當(dāng)判斷出第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將第二地址寫入高位地址寄存器36中,并將第一地址和第二地址寫入程序計數(shù)器32中。值得注意的是,該第二指令字的第二操作碼為空操作碼。更為具體的,第一地址為第一目標(biāo)地址的低位地址;第二地址為第一目標(biāo)地址的高位地址。更進一步的,若程序存儲器33中存儲的跳轉(zhuǎn)指令為單字節(jié)跳轉(zhuǎn)指令時,單字節(jié)跳轉(zhuǎn)指令包括第三操作碼和第三地址,則微控制器的高位地址寄存器36還用于存儲單字節(jié)跳轉(zhuǎn)指令的第四地址。則控制器31具體用于在當(dāng)前周期開始運行將單字節(jié)跳轉(zhuǎn)指令寫入第一指令寄存器34,并確定第三操作碼為單字節(jié)跳轉(zhuǎn)指令操作碼時,將第三地址和存儲在高位地址寄存器36中的第四地址寫入程序計數(shù)器32??刂破?1在下一周期根據(jù)程序計數(shù)器32中的由第三地址和第四地址構(gòu)成的第二目標(biāo)地址,將程序存儲器33中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第二目標(biāo)地址對應(yīng)的第二指令,并將該第二指令寫入第二指令寄存器35。值得一提的是,第三地址為第二目標(biāo)地址的低位地址;第四地址為第二目標(biāo)地址的高位地址。在本實施例中,當(dāng)控制器31第一指令寄存器34中的操作碼為單字節(jié)跳轉(zhuǎn)指令碼時,即該跳轉(zhuǎn)指令為單字節(jié)跳轉(zhuǎn)指令,將第一指令寄存器34中的第三地址和高位地址寄存器36中的第四地址寫入程序計數(shù)器32中,從而使控制器31在下一周期根據(jù)程序計數(shù)器32 中的由第三地址和第四地址構(gòu)成的第二目標(biāo)地址,將 程序存儲器33中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第二目標(biāo)地址對應(yīng)的第二指令,從而有效的節(jié)省了程序存儲器的空間;當(dāng)控制器31第一指令寄存器34中的操作碼為雙字節(jié)跳轉(zhuǎn)指令碼時,即該跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令,將第一指令寄存器34中的第一地址和第二指令寄存器35中的第二地址寫入程序計數(shù)器32 中,從而使控制器31在下一周期根據(jù)程序計數(shù)器32中的由第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將程序存儲器33中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第一目標(biāo)地址對應(yīng)的第一指令,從而有效的提高了指令的執(zhí)行效率。這樣,微控制器通過單字節(jié)跳轉(zhuǎn)指令和雙字節(jié)跳轉(zhuǎn)指令的組合使用,即當(dāng)頁內(nèi)跳轉(zhuǎn)時,采用單字節(jié)跳轉(zhuǎn)指令的處理方法;當(dāng)跨頁跳轉(zhuǎn)時,采用雙字節(jié)跳轉(zhuǎn)指令的處理方法,從而有效的節(jié)省了微控制器中程序存儲器的空間,同時還有效的提高了指令的執(zhí)行效率。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種跳轉(zhuǎn)指令的處理方法,其特征在于,包括程序存儲器存儲跳轉(zhuǎn)指令,若所述跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,所述雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址,所述第二指令字包括第二操作碼和第二地址;控制器在當(dāng)前周期開始運行將所述第一指令字寫入第一指令寄存器時,將所述第二指令字寫入第二指令寄存器;所述控制器在確定所述第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第一地址和第二地址寫入程序計數(shù)器;所述控制器在下一周期根據(jù)所述程序計數(shù)器中的由所述第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第一目標(biāo)地址對應(yīng)的第一指令;并將所述第一指令寫入所述第二指令寄存器。
2.根據(jù)權(quán)利要求1所述的跳轉(zhuǎn)指令的處理方法,其特征在于,所述第二操作碼為空操作碼,所述控制器在確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第一指令寄存器中第一指令字和第二指令寄存器中的第二指令字寫入程序計數(shù)器,具體包括所述控制器對所述第一指令字的第一操作碼進行譯碼,以判斷所述第一操作碼是否為跳轉(zhuǎn)指令操作碼;當(dāng)所述控制器判斷出所述第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第二地址寫入高位地址寄存器,并將所述第一地址和第二地址寫入所述程序計數(shù)器。
3.根據(jù)權(quán)利要求1或2所述的跳轉(zhuǎn)指令的處理方法,其特征在于,所述第一地址為所述第一目標(biāo)地址的低位地址;所述第二地址為所述第一目標(biāo)地址的高位地址。
4.根據(jù)權(quán)利要求1所述的跳轉(zhuǎn)指令的處理方法,其特征在于,若所述跳轉(zhuǎn)指令為單字節(jié)跳轉(zhuǎn)指令時,所述單字節(jié)跳轉(zhuǎn)指令包括第三操作碼和第三地址,則所述控制器在當(dāng)前周期開始運行將所述單字節(jié)跳轉(zhuǎn)指令寫入所述第一指令寄存器,并確定所述第三操作碼為單字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第三地址和存儲在高位地址寄存器中的第四地址寫入所述程序計數(shù)器;所述控制器在下一周期根據(jù)所述程序計數(shù)器中的由所述第三地址和第四地址構(gòu)成的第二目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第二目標(biāo)地址對應(yīng)的第二指令;并將所述第二指令寫入所述第二指令寄存器。
5.根據(jù)權(quán)利要求4所述的跳轉(zhuǎn)指令的處理方法,其特征在于,所述第三地址為所述第二目標(biāo)地址的低位地址;所述第四地址為所述第二目標(biāo)地址的高位地址。
6.一種微控制器,包括控制器、程序計數(shù)器、程序存儲器、第一指令寄存器和第二指令寄存器,其特征在于所述程序存儲器,用于存儲跳轉(zhuǎn)指令,若所述跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時,所述雙字節(jié)跳轉(zhuǎn)指令包括第一指令字和第二指令字,所述第一指令字包括第一操作碼和第一地址, 所述第二指令字包括第二操作碼和第二地址;所述控制器,用于在當(dāng)前周期開始運行將所述第一指令字寫入所述第一指令寄存器時,將第二指令字寫入第二指令寄存器;且在確定所述第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第一地址和第二地址寫入程序計數(shù)器;在下一周期根據(jù)所述程序計數(shù)器中的由所述第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第一目標(biāo)地址對應(yīng)的第一指令;并將所述第一指令寫入所述第二指令寄存器。
7.根據(jù)權(quán)利要求6所述的微控制器,其特征在于,還包括高位地址寄存器,用于存儲所述第二地址;所述控制器,具體用于對第一指令字的第一操作碼進行譯碼,以判斷所述第一操作碼是否為跳轉(zhuǎn)指令操作碼;當(dāng)判斷出所述第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時,將所述第二地址寫入所述高位地址寄存器,并將所述第一地址和第二地址寫入所述程序計數(shù)器,其中,所述第二操作碼為空操作碼。
8.根據(jù)權(quán)利要求6或7所述的微控制器,其特征在于,所述第一地址為所述第一目標(biāo)地址的低位地址;所述第二地址為所述第一目標(biāo)地址的高位地址。
9.根據(jù)權(quán)利要求6所述的微控制器,其特征在于,若所述跳轉(zhuǎn)指令為單字節(jié)跳轉(zhuǎn)指令時,所述單字節(jié)跳轉(zhuǎn)指令包括第三操作碼和第三地址,則所述高位地址寄存器還用于存儲所述單字節(jié)跳轉(zhuǎn)指令的第四地址;所述控制器,具體用于在當(dāng)前周期開始運行將所述單字節(jié)跳轉(zhuǎn)指令寫入第一指令寄存器,并確定所述第三操作碼為單字節(jié)跳轉(zhuǎn)指令操作碼時,將第三地址和存儲在高位地址寄存器中的第四地址寫入所述程序計數(shù)器;所述控制器在下一周期根據(jù)所述程序計數(shù)器中的由所述第三地址和第四地址構(gòu)成的第二目標(biāo)地址,將所述程序存儲器中的當(dāng)前所述跳轉(zhuǎn)指令跳轉(zhuǎn)到所述第二目標(biāo)地址對應(yīng)的第二指令;并將所述第二指令寫入所述第二指令寄存ο
10.根據(jù)權(quán)利要求9所述的微控制器,其特征在于,所述第三地址為所述第二目標(biāo)地址的低位地址;所述第四地址為所述第二目標(biāo)地址的高位地址。
全文摘要
本發(fā)明提供一種跳轉(zhuǎn)指令的處理方法及微控制器,該方法包括程序存儲器存儲跳轉(zhuǎn)指令,若跳轉(zhuǎn)指令為雙字節(jié)跳轉(zhuǎn)指令時包括第一指令字和第二指令字,第一指令字包括第一操作碼和第一地址,第二指令字包括第二操作碼和第二地址;控制器在當(dāng)前周期開始運行將第一指令字寫入第一指令寄存器時將第二指令字寫入第二指令寄存器;控制器在確定第一指令字的第一操作碼為雙字節(jié)跳轉(zhuǎn)指令操作碼時將第一地址和第二地址寫入程序計數(shù)器;并在下一周期根據(jù)程序計數(shù)器中的由第一地址和第二地址構(gòu)成的第一目標(biāo)地址,將程序存儲器中的當(dāng)前跳轉(zhuǎn)指令跳轉(zhuǎn)到第一目標(biāo)地址對應(yīng)的第一指令;并將第一指令寫入第二指令寄存器,從而有效的提高了跳轉(zhuǎn)指令的尋址能力和執(zhí)行效率。
文檔編號G06F9/32GK102193776SQ20101012320
公開日2011年9月21日 申請日期2010年3月10日 優(yōu)先權(quán)日2010年3月10日
發(fā)明者史衛(wèi)東, 沃良珉, 潘松, 谷志坤 申請人:上海海爾集成電路有限公司