亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c28x尋址方式詳解.txt

?? C28x尋址方式詳解.對初學(xué)F28x的同學(xué)很多幫助。
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
C28x尋址方式詳解C2000

      有四種基本尋址方式:
       
      直接尋址 - 
      16位的寄存器DP用作,固定頁指針(段指針),DP中存放當(dāng)前變量所在頁的首地址,指令中的6位或7位二進制數(shù)給出變量的偏移量(段偏移量)。用于訪問固定地址的數(shù)據(jù)結(jié)構(gòu),如片上外設(shè)或C/C++中的全局變量和靜態(tài)變量。
      棧尋址-通過使用棧指針SP訪問變量,在C28x中棧是從低地址向高地址增長的,SP始終指向下一個可用的空棧單元。SP值減去指令中6位二進制數(shù)給出的偏移量為變量地址,或者該偏移量給出分別在壓棧(或出棧)操作時SP需要后加(或先減)的量。
      間接尋址 - 
      32位的輔助寄存器XAR0~XAR7用作通用32位數(shù)據(jù)指針。指令可以進行直接的后加、先減/后減,或者通過三位二進制立即數(shù)給出對哪個寄存器操作,也可以用另外一個16位輔助寄存器內(nèi)容給出當(dāng)前用的寄存器。
      寄存器尋址 - 直接對寄存器內(nèi)容操作,寄存器可以是操作的源或目的地。這就使得C28x架構(gòu)可以直接進行寄存器對寄存器的操作。
       
      其它的尋址方式:
      數(shù)據(jù)/程序/IO空間立即尋址 - 存儲器地址操作數(shù)直接嵌入在指令中。
      程序空間間接尋址 - 某些指令可以使用某個間接指針來訪問程序空間。因為C28x 
      CPU中存儲器之一致的,因此這種尋址模式可以完成在同一條指令中同時讀兩個操作數(shù)的操作。
       
      說明:尋址模式由指令中的八位編碼給出,狀態(tài)寄存器ST1中的尋址模式選擇位AMODE給出了編譯器所使用的編碼方式。
      AMODE=0 - 
      復(fù)位時默認(rèn)的尋址模式,也是C28x的C/C++編譯器使用的默認(rèn)模式。但某些尋址方式C2xLP器件不兼容,此時段偏移量由六位二進制數(shù)給出(C2xLP器件是七位的),因此僅支持部分C2xLP器件的間接尋址方式。
      AMODE=1 - 包含了C2xLP器件全兼容的尋址模式。此時段偏移量為七位二進制數(shù)給出,支持C2xLP器件所有的尋址方式。
       
      注意:(1)C28x器件和C2xLP器件間接尋址指令的不同在于,C28x的指令中輔助寄存器指針是隱含的,也就是指令中標(biāo)明了對哪個寄存器操作。而在Cx2LP的指令中,對哪個寄存器操作是由3位的輔助寄存器指針ARP(在ST1中)給出的,并且可以同時給出下一條指令要使用輔助寄存器指針(第三個操作數(shù));(2)在C28x的指令中,目的操作數(shù)總是在源操作數(shù)的左邊。請看下例:
          假如要完成這樣的操作,把XAR4所指的數(shù)據(jù)讀出加到AL中,隨后把XAR4的內(nèi)容加一,C28x的指令為:ADD 
      AL,*XAR4++;C2xLP的指令可以為:ADD AL,*++(此時ARP=4)。而C2xLP的指令A(yù)DD 
      AL,*++,ARP5則在完成上述操作的同時,把ARP的內(nèi)容更新為5,即令A(yù)RP指向ARP5。
       
      具體的區(qū)別請參見TI的文檔spru430d中第五章的表5-1。
       
      操作符*和@的作用:*表示取后面的變量值或寄存器的內(nèi)容作為地址,取該地址所指向的存儲空間的內(nèi)容作為操作數(shù)。@表示直接取后面的變量值或寄存器的內(nèi)容作為操作數(shù)。
       
      如何改變編譯器的處理模式:
      編譯器總是默認(rèn)為AMODE=0,通過兩種方式改變編譯器的處理方式,一種是命令行參數(shù)法,當(dāng)使用-v28時使編譯器默認(rèn)為AMODE=0模式,當(dāng)使用-v28 
      -m20時默認(rèn)為AMODE=1模式。另一種是源文件中指定法,如下面的文件(假設(shè)編譯器命令行參數(shù)為-v28)
                    ; 文件開始
                      ...
                      ...
                      ...
                      SETC AMODE    ; AMODE位置一
                      .lp_amode     ; 通知編譯器檢查C27x/C28x的語法,該段代碼只能用AMODE=1的尋址方式
                      ...
                      ...
                      ...
                      CLRC AMODE    ; AMODE位清零
                      .c28_amode    ; 通知編譯器檢查C28x的語法,該段代碼只能用AMODE=0的尋址方式
                      ...
                      ...
                      ...
                    ; 文件結(jié)束
      指令實例:
      直接尋址(只能尋址C28x的低4M數(shù)據(jù)地址空間):
        
      (1)@6位二進制立即數(shù)方式,適用于AMODE=0,地址高10位為0,地址次高16位為DP的低16位,地址低6位為6位二進制立即數(shù),可尋址DP以上的0到63字的地址范圍:
              ; VarA和VarB在同一個長度為64字的分頁中,VarC和VarD同在另外一個長度為64字的分頁中
              MOVW DP,#VarA    ; 把變量VarA所在頁的首地址載入段指針DP中
              ADD  AL,@VarA    ; 把變量VarA的內(nèi)容加到AL中
              MOV  @VarB,AL    ; 把AL的內(nèi)容寫進變量VarB中
                               
              MOVW DP,#VarC    ;
              SUB  AL,@VarC    ;
              MOV  @VarD,AL    ;
        
      (2)@7位二進制立即數(shù)方式,適用于AMODE=1,地址高10位為0,地址次高15位為DP的低15:1位,地址低7位為7位二進制立即數(shù),可尋址DP以上的0到127字的地址范圍:
              SETC AMODE
              .lp_amode
              
              MOVW DP,#VarA
              ADD  AL,@@VarA
              MOV  @@VarB,AL
              
              MOVW DP,#VarC
              SUB  AL,@@VarC
              MOV  @@VarD,AL
      棧尋址(只能尋址C28x的低64k數(shù)據(jù)地址空間):
        (2) 
      *-SP[6位二進制立即數(shù)]方式,適用于AMODE=0,高16位地址為0,低16位地址為SP-6位二進制立即數(shù),SP不變,可尋址低于SP的0到63個字地址范圍:
              ADD AL,*-SP[5]   ; 棧頂減5個字所指向的內(nèi)容(16位)加到AL中,SP不變
              MOV *-SP[8],AL   ; AL的內(nèi)容(16位)寫到棧頂減8個字所指向的位置,SP不變
              
              ADDL ACC,*-SP[12] ; 棧頂減12個字所指向的內(nèi)容(32位)加到ACC中,SP不變
              MOVL *-SP[34],ACC ; ACC的內(nèi)容(32位)寫到棧頂減32個字所指向的位置,SP不變
              
        (2) *SP++方式,適用于AMODE=x,16位操作時SP=SP+1,32位操作時SP=SP+2,高16位地址為0,低16位地址為SP:
              MOV *SP++,AL     ; AL的內(nèi)容(16位)壓入棧頂
              MOVL *SP++,P     ; P的內(nèi)容(32位)壓入棧頂
        (3) *--SP方式,適用于AMODE=x,16位操作時SP=SP-1,32位操作時SP=SP-2,高16位地址為0,低16位地址為SP:   
           
              ADD AL,*--SP     ; 棧頂內(nèi)容彈出并加到AL中(16位)
              MOVL ACC,*--SP   ; 棧頂內(nèi)容彈出到ACC中(32位)
      C28x間接尋址:
        
      (1)*XARn++方式,適用于AMODE=x,ARP=n,32位地址為XARn,16位操作時XARn=XARn+1,32位操作時XARn=XARn+2:
              MOVL XAR2,#Array1 ; 載入Array1的首地址到XAR2中
              MOVL XAR3,#Array2 ; 載入Array2的首地址到XAR3中
              MOV @AR0,#N-1     ; 載入循環(huán)計數(shù)N到AR0中
            Loop:
              MOVL ACC,*XAR2++  ; 載入XAR2指向的內(nèi)容到ACC中,XAR2后加1
              MOVL *XAR3++,ACC  ; ACC的內(nèi)容寫入XAR3指向的地址,XAR3后加1
              BANZ Loop,AR0--   ; 循環(huán)到AR0 == 0,AR0后加1
        
      (2)*--XARn方式,適用于AMODE=x,ARP=n,32位地址為XARn,16位操作時XARn=XARn-1,32位操作時XARn=XARn-2:
              MOVL XAR2,#Array1+N*2 ; 載入Array1的末地址到XAR2中
              MOVL XAR3,#Array2+N*2 ; 載入Array1的末地址到XAR2中
              MOV @AR0,#N-1         ; 載入循環(huán)計數(shù)N到AR0中
            Loop:
              MOVL ACC,*--XAR2      ; XAR2先減1,載入XAR2所指向的內(nèi)容到ACC中
              MOVL *--XAR3,ACC      ; XAR3先減,ACC內(nèi)容寫入XAR3所指的位置
              BANZ Loop,AR0--       ; 循環(huán)到 AR0 == 0, AR0后加1
        
      (3)*+XARn[AR0或(AR1)]方式,適用于AMODE=x,ARP=n,32位地址為XARn+AR0(或AR1),XAR0(或XAR1)的低16位作為無符號數(shù)加到XARn中,忽略高16位,可能會產(chǎn)生到XARn高16位的溢出:
              MOVW DP,#Array1Ptr    ; 指向Array1Ptr的段
              MOVL XAR2,@Array1Ptr  ; 載入Array1的首地址到XAR2中
              MOVB XAR0,#16         ; AR0 = 16, AR0H = 0
              MOVB XAR1,#68         ; AR1 = 68, AR1H = 0
              MOVL ACC,*+XAR2[AR0]  ; 
      把Array1[16]和Array1[68]內(nèi)容互換,首先載入Array1[16]內(nèi)容到ACC
              MOVL P,*+XAR2[AR1]    ; 把Array1[68]內(nèi)容到P
              MOVL *+XAR2[AR1],ACC  ; 寫入ACC內(nèi)容到Array1[68]
              MOVL *+XAR2[AR0],P    ; 寫入P內(nèi)容到Array1[16],完成互換
         
      (4)*+XARn[3位二進制立即數(shù)]方式,適用于AMODE=x,ARP=n,32位地址為XARn+無符號3位二進制立即數(shù),*XARn等價于*+XARn[0]:
              MOVW DP,#Array1Ptr    ; 指向Array1Ptr的段
              MOVL XAR2,@Array1Ptr  ; 載入Array1的首地址到XAR2
              MOVL ACC,*+XAR2[2]    ; 
      把Array1[2]和Array1[5]內(nèi)容互換,首先載入Array1[2]內(nèi)容到ACC
              MOVL P,*+XAR2[5]      ; 把Array1[5]內(nèi)容到P
              MOVL *+XAR2[5],ACC    ; 寫入ACC內(nèi)容到Array1[5]
              MOVL *+XAR2[2],P      ; 寫入P內(nèi)容到Array1[2],完成互換
      循環(huán)間接尋址:
       
      寄存器尋址:
        (1)32位操作,使用寄存器@ACC,@XT,@P,@XARn,當(dāng)@ACC作為目的操作數(shù)時,可能會影響Z,N,V,C,OVC標(biāo)志位。
        
      (2)16位操作,使用寄存器@AL,@AH,@PL,@PH,@TH,@SP,@ARn,當(dāng)@AL或@AH作為目的操作數(shù)時,可能會影響Z,N,V,C,OVC標(biāo)志位。對應(yīng)的高16位或低16位不受影響。
       
      數(shù)據(jù)/程序/IO空間立即尋址:
         (1) 
      *(16位二進制立即數(shù))方式,地址的高16位為0,低16位為16位二進制立即數(shù)。當(dāng)該指令連續(xù)使用時,每次地址都會后加。只能尋址低64k數(shù)據(jù)空間。可用指令:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区主播在线| 亚洲一区在线视频观看| 国产精品白丝jk黑袜喷水| 精品国产制服丝袜高跟| 精品午夜久久福利影院| 久久久久97国产精华液好用吗| 国产精品99久久久| 中文字幕欧美区| 色一情一乱一乱一91av| 日韩国产欧美一区二区三区| 精品国免费一区二区三区| 国产一区二区不卡| 亚洲欧洲国产日韩| 在线不卡欧美精品一区二区三区| 毛片av一区二区| 国产婷婷色一区二区三区四区| 成人av动漫网站| 亚洲一区二区欧美日韩 | 中文字幕一区av| 欧美中文字幕一区| 经典三级在线一区| 国产精品免费免费| 在线观看一区二区视频| 久久 天天综合| 亚洲欧洲精品一区二区三区| 日韩一区二区免费电影| 91伊人久久大香线蕉| 婷婷中文字幕综合| 国产欧美1区2区3区| 欧洲精品中文字幕| 国产精品99久久久久久久女警 | 欧美一区二区高清| 国产91清纯白嫩初高中在线观看| 亚洲午夜精品网| 久久精品人人爽人人爽| 51精品视频一区二区三区| 成人精品鲁一区一区二区| 日韩制服丝袜先锋影音| 国产精品三级视频| 欧美一区二区三区免费| 91免费国产在线观看| 国产自产2019最新不卡| 午夜精品成人在线视频| 国产欧美一区二区在线| 欧美成人a∨高清免费观看| 在线看一区二区| 成人福利视频在线| 国产毛片精品视频| 美女一区二区三区| 亚洲一区二区三区四区在线观看| 国产欧美日韩麻豆91| 日韩一区二区三区四区| 欧美在线观看18| av日韩在线网站| 国产高清不卡一区二区| 精一区二区三区| 日韩中文字幕区一区有砖一区 | 精品久久久三级丝袜| 欧美日韩国产成人在线免费| 不卡av在线免费观看| 国产不卡在线播放| 国产一区二区三区在线看麻豆| 男女男精品视频网| 天堂一区二区在线| 日本女优在线视频一区二区| 五月天精品一区二区三区| 一区二区三区不卡在线观看| |精品福利一区二区三区| 国产精品美女久久久久久2018| 久久久青草青青国产亚洲免观| 欧美一区国产二区| 欧美一级二级在线观看| 欧美大片免费久久精品三p| 欧美一区二区三区免费视频 | 激情欧美一区二区三区在线观看| 日日骚欧美日韩| 日本亚洲最大的色成网站www| 午夜伊人狠狠久久| 婷婷综合在线观看| 日韩高清电影一区| 久久超碰97人人做人人爱| 极品少妇一区二区| 国产成人精品免费在线| 不卡免费追剧大全电视剧网站| a在线播放不卡| 欧美亚洲一区二区在线观看| 日本韩国一区二区三区| 欧美性xxxxxxxx| 欧美日韩国产影片| 亚洲图片激情小说| 一区二区三区在线视频观看58| 亚洲成人综合视频| 日韩成人av影视| 国产麻豆成人精品| av亚洲精华国产精华精华| 欧美性生活大片视频| 欧美一区二视频| 久久精品一区四区| 最近日韩中文字幕| 午夜激情久久久| 国产综合一区二区| 97se亚洲国产综合自在线| 欧美综合天天夜夜久久| 日韩欧美在线综合网| 久久久久国产精品麻豆| 亚洲最新视频在线播放| 另类小说综合欧美亚洲| 不卡欧美aaaaa| 欧美美女一区二区三区| 国产亚洲va综合人人澡精品 | 中文字幕精品一区二区精品绿巨人 | 国产成人综合精品三级| 色综合久久六月婷婷中文字幕| 欧美二区在线观看| 中文字幕精品在线不卡| 亚洲123区在线观看| 国产成人午夜精品5599 | 蜜臀av一区二区| 高清在线观看日韩| 欧美日韩精品电影| 国产欧美日韩三区| 日韩va亚洲va欧美va久久| 成人污污视频在线观看| 91麻豆精品国产无毒不卡在线观看 | 亚洲va欧美va人人爽午夜| 精品亚洲aⅴ乱码一区二区三区| 91麻豆精品在线观看| 精品人伦一区二区色婷婷| 一区二区三区中文在线观看| 国产成人免费xxxxxxxx| 91精品国产日韩91久久久久久| 亚洲男人的天堂在线aⅴ视频| 久久97超碰色| 欧美精三区欧美精三区| 亚洲品质自拍视频| 国产一区二三区好的| 91精品国产综合久久久久久久| 亚洲人成网站精品片在线观看| 国产一区二区在线观看免费| 3atv一区二区三区| 一区二区三区四区国产精品| 成人黄色片在线观看| 精品免费视频一区二区| 五月开心婷婷久久| 在线视频欧美区| 综合激情网...| 国产99久久久精品| 国产亚洲欧美中文| 国产在线视视频有精品| 日韩欧美第一区| 日韩高清不卡一区二区| 欧美老年两性高潮| 一区二区三区丝袜| 在线欧美日韩国产| 亚洲欧美偷拍卡通变态| 9l国产精品久久久久麻豆| 肉肉av福利一精品导航| 欧美日韩国产一级二级| 亚洲国产美国国产综合一区二区| 一本大道久久精品懂色aⅴ| 国产精品成人一区二区三区夜夜夜| 国产一区二区三区蝌蚪| 久久久久久久久久久99999| 激情综合色综合久久综合| 日韩欧美在线一区二区三区| 日本成人在线看| 欧美一区二区精品在线| 青青草国产精品97视觉盛宴| 日韩一二三四区| 久久电影网电视剧免费观看| 精品美女在线播放| 国产一区二区91| 国产精品毛片a∨一区二区三区| 成人精品在线视频观看| 亚洲精品视频在线观看网站| 欧美自拍偷拍一区| 日韩成人dvd| 久久午夜国产精品| 成人免费高清在线| 亚洲综合色婷婷| 欧美一级片在线观看| 久久99深爱久久99精品| 亚洲国产经典视频| 91蜜桃视频在线| 三级精品在线观看| 精品国产一区二区三区不卡 | 99免费精品视频| 亚洲欧美日韩系列| 欧美日韩www| 秋霞电影一区二区| 欧美极品美女视频| 色婷婷综合久色| 免费在线观看视频一区| 国产日本欧美一区二区| 色婷婷久久久综合中文字幕| 日本视频在线一区| 中文字幕国产一区二区| 欧美丝袜丝交足nylons图片| 免费的国产精品| 一区在线观看免费|