




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.,sthu,stwu一一對應(yīng),所不同的是D-Form使用的立行劃分,為實現(xiàn)可以選擇價格/性能比平衡的復(fù)雜性級別留出了空間D(RA)語義:,sthu,stwu一一對應(yīng),所不同的是D-Form使用的立行劃分,為實現(xiàn)可以選擇價格/性能比平衡的復(fù)雜性級別留出了空間D(RA)語義:ifRA=0thenb<-0elseb<-(atethenMaskInsert指令rlwimiRA,RS第一部分PowerPC精簡指令集計算機(RISC)簡介為實現(xiàn)可以選擇價格/性能比平衡的復(fù)雜性級別留出了空間,同時還保持了實現(xiàn)間的代碼兼由于我目前手上的開發(fā)板是基于e600內(nèi)核,所以我在學(xué)習(xí)PowerPC指令集的過程中,順便總結(jié)了e600內(nèi)核常用的指令集,如果大家發(fā)現(xiàn)我總結(jié)的指令集有錯誤或者不準(zhǔn)確的地方,第二部分e600指令集OPCD字段的不同,PowerPC的指令集分為以下幾類。該類是無條件轉(zhuǎn)移指令。0-56-293031OPCDLIAALKAA=0,表示LI中存放的是相對地址LI*4,基址是當(dāng)前指令的地址AA=1,表示LI中存放的是絕對地址LI*4LK=1,表示轉(zhuǎn)移到目的地址的同時,將當(dāng)前指令的下一條指令存入LR寄存器LK=0,僅僅表示跳轉(zhuǎn)到目的地址,而不用修改LR寄存器.6rlwinmrA,rS,24,8,31具體過程如下:0x1后的RS和RA6rlwinmrA,rS,24,8,31具體過程如下:0x1后的RS和RA的內(nèi)容相或,放入RA中備注:MASK形成的規(guī)則就可以把一個立即數(shù)放到一個通用計算器中。例如:讀取一個wor示的地址處bc4,2,BDBO[0]為0根據(jù)CR寄存器的相應(yīng)將LK*4符號擴展到32為對應(yīng)的真值為-0x4c,而當(dāng)前指令的地址為0x1000056c,所以跳轉(zhuǎn)因此如果想獲得下一條指令的有效地址可以使用下面的匯編代碼:2.2B-Form指令格式該類為有條件轉(zhuǎn)移指令0-56-1011-15OPCDBOBIBDAALKbcBO,BI,BD//AA=0LK=0bcaBO,BI,BD//AA=1LK=0解釋:AA和LK的含義同上,下面詳細介紹一下BO,BI,BD字段的含義。BO[0]為1:表示根據(jù)CTR寄存器是否為0進行轉(zhuǎn)移;為0:根據(jù)CR寄存器的相應(yīng)字段和BI字段中的條件進行轉(zhuǎn)移。為0:指定的條件為假時轉(zhuǎn)移.在e600內(nèi)核中,這些立即數(shù)的長度只能限制在16位。為了能順構(gòu),比如上面的cmpi指令就用BF來指定CRn字段,一般而言D//AA=1LK=0bclBO,BI,BD//AA=0LKD字段的不同,PowerPC的指令集分為以下幾類。在e600內(nèi)核中,這些立即數(shù)的長度只能限制在16位。為了能順構(gòu),比如上面的cmpi指令就用BF來指定CRn字段,一般而言D//AA=1LK=0bclBO,BI,BD//AA=0LKD字段的不同,PowerPC的指令集分為以下幾類。2.1I-為0:CTR寄存器非0時進行條件轉(zhuǎn)移BO[4]為1:bc指令將被判斷為執(zhí)行轉(zhuǎn)移功能,處理器將預(yù)取轉(zhuǎn)移指令目標(biāo)地址后面的幾條指令,并將預(yù)先取得的指令放入緩沖對列。為0:bc指令不被判斷為執(zhí)行轉(zhuǎn)移功能,不預(yù)取轉(zhuǎn)移指令目標(biāo)地址后面的幾條指令BI[0-2]的值n(n在0到7之間指出CR寄存器中的CRn字段的狀態(tài)作為指令跳轉(zhuǎn)條件BO[0]為1:表示根據(jù)CTR寄存器是否為0進行轉(zhuǎn)移,和CR寄存器無關(guān)了;BO[3]為0:CTR寄存器為非0時進行條件轉(zhuǎn)移;BO[4]為0:bc指令不被判斷為執(zhí)行轉(zhuǎn)移功能,不預(yù)取轉(zhuǎn)移指令目標(biāo)地址后面的幾條指令綜上,該指令的意思是將CTR寄存器自減,如果CTR不為0則跳轉(zhuǎn)到BD指示的地址處。可以使用指令助記符bdnzBD表示,CTR寄存器自減,如果CTR不為0則跳轉(zhuǎn)到BD指示的地址處bc4,2,BDBO[0]為0根據(jù)CR寄存器的相應(yīng)字段和BI字段在中的條件進行轉(zhuǎn)移。BI[0-2]的值為0:指出CR寄存器中的CR0中的狀態(tài)作為指令跳轉(zhuǎn)條件綜上,該指令的意思是說只有比較結(jié)果不等于0,就轉(zhuǎn)移可以使用指令助記符:bneBD來代表bc4,2,BD。備注:目標(biāo)地址是相對地址,還是絕對地址要看AA標(biāo)識是否置位。),.8;最后0x00210000跟0x12005678相與,得到lseb=(RA)EA=b+extsign(D)RT=32個為8;最后0x00210000跟0x12005678相與,得到lseb=(RA)EA=b+extsign(D)RT=32個為0:bc指令不被判斷為執(zhí)行轉(zhuǎn)移功能,不預(yù)取轉(zhuǎn)移指令目標(biāo)地址存器索引D:存放該指令需要的另一個立即數(shù)數(shù)據(jù)源該指令格式包含該指令一定包含一個立即數(shù)。0-55-1011-1516-31OPCDRS/RTRADRS/RT:存放該條指令運算結(jié)果的寄存器的索引RA:存放源數(shù)據(jù)的寄存器索引D:存放該指令需要的另一個立即數(shù)數(shù)據(jù)源1.對存儲器或者寄存器進行讀寫的指令2.立即數(shù)的算術(shù)運算和邏輯運算指令RT=32個連續(xù)的0連上MEM(EA,4)MEM(EA,4表示從EA地址處取得32位數(shù)據(jù)該指令的目的就是將RA+D指定的地址中讀取一個32位的數(shù)據(jù),然后將此數(shù)據(jù)傳遞給RT和lwz指令想反,將寄存器RS中的32位數(shù)存到RA+D指向的內(nèi)存單元處備注:立即數(shù)D參與的尋找計算,都需要將D符號擴展至32位。解釋:將D+RA指向的內(nèi)存單元的值放入RT索引的寄存器,然后將RA寄存器的值更新為RA+D備注:這兩條指令可以實現(xiàn)數(shù)據(jù)棧的壓棧和出棧操作,另外還有對8位和16位數(shù)據(jù)進行操介紹兩條批處理指令LK的含義同上,下面詳細介紹一下BO,BI,BDLK的含義同上,下面詳細介紹一下BO,BI,BD字段的含義。I)thenc<-0b010//大于時設(shè)置CRn(1)為1e存放源操作數(shù)寄存器的索引RT字段存放目的操作數(shù)的索引;RA字SRARBMBMERc解釋:類似于上一條指令,只是把左移的位EA<-b+EXTS(D)r<-RTEA<-EA+4解釋:將RA+D地址處的數(shù)據(jù)依次傳遞到RT至31中,傳遞的32位數(shù)據(jù)量32-RT個解釋:將RS至R31的(32-RS)個數(shù)據(jù)依次傳遞到RA+D指向的內(nèi)容地址處。備注:使用這兩個寄存器時要注意存儲器的邊界檢查和所使用到的通用寄存器是否需要備n<-BF表示的數(shù)值將寄存器RA與立即數(shù)SI進行比較,然后將比較指令產(chǎn)生的狀態(tài)放入CR寄存器的不同字解釋一下CR寄存器,e600中32位CR寄存器用來存放指令執(zhí)行之后的狀態(tài),該寄存器分各個字段CRn(n從0至7)都可以表示響應(yīng)指令執(zhí)行的結(jié)果:CR0(0用來表示LT(小于當(dāng)整型指令運算結(jié)果為負時置1;CR0(1用來表示GT(大于當(dāng)整型指令運算結(jié)果為正時置1;CR0(2用來表示EQ(等于當(dāng)整型指令運算結(jié)果為0時置1;CR0(3用來表示SO(溢出當(dāng)整型指令運算結(jié)果溢出時置1;.RA,UI和cmpli的指令的用法相同,所不同的是cmpli指令lwzRT,D(RA)語義:ifRA=0thenb=0e行測試,如果條件成立,則處理器進入系統(tǒng)的trap程序,然后對址處。備注:使用這兩個寄存器時要注意存儲器的邊界檢查和所使用寄存器的全部的CRn(n從0至7)來保存運算的結(jié)果。一般在比較指令cmp之后都會有一比如上面的cmpi指令就用BF來指定CRn字段,一般而言bcRA,UI和cmpli的指令的用法相同,所不同的是cmpli指令lwzRT,D(RA)語義:ifRA=0thenb=0e行測試,如果條件成立,則處理器進入系統(tǒng)的trap程序,然后對址處。備注:使用這兩個寄存器時要注意存儲器的邊界檢查和所使用備注:如果把立即數(shù)SI換成寄存器索引RB,則twTO,RA,RB就是X-Form形式。另外,D-Form指令包含了很多用于算術(shù)和邏輯運算的指令,這些指令都是需要一個立即數(shù)放進RA容放進RB.D//AA=1LK=0bclBO,BI,BD//AA=0LK始)存入RA中;2.6XL-Form指令XL-Form指令支字段值為D//AA=1LK=0bclBO,BI,BD//AA=0LK始)存入RA中;2.6XL-Form指令XL-Form指令支字段值為16bclrlBO,BI,BH//LK=1,21-3該指令稱之為陷阱(trap)指令,該指令對一些Trap條件進E600中X-Form指令的數(shù)量最多,D-form指令的每一個指令在X-Form中都有對應(yīng)的指令。X-Form的指令格式如下:0-56-1011-1516-2021-3031OPCDTS/RTRARBXORcX-Form的指令格式與D-Form指令格式:0-55-1011-1516-31OPCDRS/RTRAD相比,只是將D-Form指令中的D字段差分為RB,XO和Rc字段。X-Form中的RB和RS字段存放源操作數(shù)寄存器的索引RT字段存放目的操作數(shù)的索引;RA字段既可以存放源操作數(shù)寄存器的索引,而言可以存放目的操作數(shù)的索引;Rc字段置1表示當(dāng)前指令的運算結(jié)果將改變CR寄存器中的相應(yīng)CRn段,具有“.后綴的指令,其Rc位置1。典型的X-Form指令如下:指令等,這些指令和D-Form中的對應(yīng),所不同的是D-Form使用的立即數(shù),換成了X-Form使用的寄存器索引。備注:該指令找出RS寄存器中從左邊開始第一個不為0的位,然后將該位所在的位序(從0開始)存入RA中;2.6XL-Form指令XL-Form指令支持條件轉(zhuǎn)移指令,與B-Form類條件轉(zhuǎn)移指令:B-Form指令格式有條件轉(zhuǎn)移指令0-56-10OPCDBO16-29BDAALK不同,該類指令使用LR寄存器或者CTR寄存器,而不適用16位的立即數(shù)作為跳轉(zhuǎn)目標(biāo)。XL-Form指令格式:0-56-1011-1516-1819-2021-3031OPCDBOBI~BH16或者528LK據(jù)CTR寄存器是否為0進行轉(zhuǎn)移;為0:根據(jù)CR寄存器的相應(yīng)字為0:bc據(jù)CTR寄存器是否為0進行轉(zhuǎn)移;為0:根據(jù)CR寄存器的相應(yīng)字為0:bc指令不被判斷為執(zhí)行轉(zhuǎn)移功能,不預(yù)取轉(zhuǎn)移指令目標(biāo)地址d(0x12345678)到目的寄存器:lisRA,0x12A中的有符號數(shù)小于立即數(shù)SI(符合擴展之后),則處理器進程TX-Form類指令的BO,BI字段值和B-Form類中的BO,BI字段含義相同,LK置1表示跳轉(zhuǎn)指令執(zhí)行后,LR寄存器指向下一條指令的地址(當(dāng)前指令地址+4BH字段用于靜態(tài)分備注:XL-Form指令和I-Form指令協(xié)作完成指令的跳轉(zhuǎn)XL-Form指令還可以支持CR寄存器不同段CRn的與,或,異或,同或操作,指令格式如0-56-10OPCDBTBA16-20BB21-3031crandBT,BA,BB//第21-30字段為257,BT<-BA&BBcrorBT,BA,BB//第21-30字段為449,BT<-BA|BB..tb,sth,stw,lbzu,lhzu,lwzu,stub四個bit位的含義如下:CR0(0):用來表示LT(小于),RS)的bit24-31,用以對立即數(shù)0x12345678(即數(shù),換成了X-Form使用的寄存器索引。字節(jié)序列交換指令:crxorBT,BA,tb,sth,stw,lbzu,lhzu,lwzu,stub四個bit位的含義如下:CR0(0):用來表示LT(小于),RS)的bit24-31,用以對立即數(shù)0x12345678(即數(shù),換成了X-Form使用的寄存器索引。字節(jié)序列交換指令:crnandBT,BA,BB//第21-30字段為255,BT<-BA&BB)mcrfBF,BFA//第21-30字段為0,將CR的BFA字段拷貝到BF字段2.7XFX-Form,XFL-Form,XS-Fomr,XO-Form類指令XFX-Form指令格式:0-56-1011-2021-30OPCDRTspr/tbrXO~XO-Form指令用來支持帶進位的算術(shù)運算指令和乘除法指令格式:0-56-10OPCDRTRA16-20RB2122-3031OEXORc字段外,還可以將CA位參與運算;2.8M-Form指令M-Form指令主要作用是對選定的字段做循環(huán)左移,并做一些相應(yīng)掩碼操作,該類指令時PowerPC指令的精華,包含了一組非常強大的指令。rlwinmRA,RS,SH,MB,ME(Rc=0)0-56-1021RS11-1516-2021-2526-3031RASHMBMERc解釋:寄存器RS的內(nèi)容循環(huán)左移立即數(shù)SH位,然后跟立即數(shù)MB和ME形成的MASK相與后放進RAMASK形成的規(guī)則是,如果MB小于等于ME,則MB到ME之間的位全部置1,包括這兩位,形成MASK;否則,MB到ME之間的位清0,其他位包括這兩位置1,形成MASK。例子1:具體過程:0x12345678循環(huán)左移16位得到0x56781234,然后與MASK:0x0f00該指令可以用來抽取C語言代碼或者寄存器中的位域。例子2:具體過程如下:0x12345678循環(huán)左移24位得到0x78123456,然后與MASK:0x00ff.是,如果MB小于等于ME,則MB到ME是,如果MB小于等于ME,則MB到ME之間的位全部置1,包括/高16位(0x1234)偏移16位后變成0x1234000這些指令和D-Form中的lbz,lhz,lha,lwz,s寄存器中的某個位域,然后對該位域進行賦值的操作。第三部分:總功能:該指令可以用來清除C語言代碼或者寄存器中的位域。rlwnmRA,RS,RB,MB,ME(Rc=0)rlwnm.RA,RS,RB,MB,ME(Rc=1)0-56-1011-1516-2021-2526-303123RSRARBMBMERc類似于上一條指令,只是把左移的位數(shù)放到了寄存器RB中0-56-1020RSRASH21-25MB26-3031MERc解釋:寄存器RS的內(nèi)容循環(huán)左移立即數(shù)SH位,然后跟立即數(shù)MB和ME形成的MASK相與,再把RA的內(nèi)容跟立即數(shù)MB和ME形成的MASK的補碼相與,即清掉RA中MASK
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 托兒所服務(wù)的危機管理和風(fēng)險控制考核試卷
- 光纜生產(chǎn)自動化與智能化技術(shù)考核試卷
- 樓房商用租賃合同范本
- 首付購車合同范本
- 軸承成品采購合同范本
- 水電承包勞務(wù)合同范本
- 酒店客房服務(wù)標(biāo)準(zhǔn)及流程制度
- 靜脈輸液的操作流程及操作規(guī)范
- 電商網(wǎng)站運營維護服務(wù)協(xié)議
- 共享經(jīng)濟平臺技術(shù)開發(fā)合作協(xié)議
- 大學(xué)生就業(yè)指導(dǎo)教學(xué)-大學(xué)生就業(yè)形勢與政策
- 車路協(xié)同路側(cè)設(shè)備通信終端(RSU)測試技術(shù)要求(征求意見稿)
- TCAICC 001-2024 張家界莓茶質(zhì)量等級評價
- 冷鏈鄉(xiāng)村物流相關(guān)行業(yè)公司成立方案及可行性研究報告
- 6.《變色龍》省公開課一等獎全國示范課微課金獎?wù)n件
- 股權(quán)架構(gòu)設(shè)計合同
- HJ1209-2021工業(yè)企業(yè)土壤和地下水自行監(jiān)測技術(shù)指南(試行)
- 《跨境電商英語》課程標(biāo)準(zhǔn)
- 2024年湖南電氣職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 幼兒園衛(wèi)生保健工作匯報
- 第一課 追求向上向善的道德(課時1)(課件)
評論
0/150
提交評論