複製鏈接
請複製以下鏈接發送給好友

尋址模式

鎖定
TMS320C62x/C64x/C67xDSP的尋址模式有線性尋址模式(使用BK0),還有循環尋址模式(使用BK1)。尋址模式由尋址模式寄存器(AMR)決定。
所有的寄存器都可以進行線性尋址,只有8個寄存器可以進行循環尋址,這8個寄存器是:.D1功能單元使用的寄存器A4~A7和.D2功能單元使用的寄存器B4~B7。指令LDB(U)/LDH(U)/LDW,STB/STH/STW,ADDAB/ADDAH/ADDAW/ADDAD和SUBAB/SUBAH/SUBAW都使用AMR寄存器來決定這些寄存器的尋址模式。
中文名
尋址模式
外文名
Addressing mode
定    義
由尋址模式寄存器決定
分    類
線性尋址模式、循環尋址模式
應用學科
操作系統術語
縮    寫
AM

尋址模式概念

TMS320C62x/C64x/C67xDSP的尋址模式有線性尋址模式(使用BK0),還有循環尋址模式(使用BK1)。尋址模式由尋址模式寄存器(AMR)決定。
所有的寄存器都可以進行線性尋址,只有8個寄存器可以進行循環尋址,這8個寄存器是:.D1功能單元使用的寄存器A4~A7和.D2功能單元使用的寄存器B4~B7。指令LDB(U)/LDH(U)/LDW,STB/STH/STW,ADDAB/ADDAH/ADDAW/ADDAD和SUBAB/SUBAH/SUBAW都使用AMR寄存器來決定這些寄存器的尋址模式。

尋址模式工作原理

尋址模式線性尋址模式

對於load和store指令,線性尋址方式是將偏移量(offsetR/cst)進行移位操作。對於字(word)、半字(halfword)或者字節(byte),分別左移2位、1位或者0位。然後,再將移位的結果與基礎寄存器(baseR)的值相加或者相減。
對於整數加減法指令,線性尋址是將源操作數(src1/cst)進行移位操作。對於字(word)、半字(halfword)或者字節(byte),分別左移2位、1位或者0位。然後,再將移位的結果進行加減法運算。

尋址模式循環尋址模式

AMR寄存器中的BK0和BK1字段説明了循環尋址方式塊的大小。
對於LDW、LDH(U)或LDB(U)指令,在分別完成將偏移量(offsetR/cst)左移2位、1位或者0位以後,再在第N位和第N+1位之間做一次帶進位和借位的加減法運算。基礎寄存器(baseR)中的N+1位到第31位保留。如果偏移量大於循環緩衝大小,那麼偏移量的有效值是循環緩衝大小的模。
如圖1所示,如果説一個塊的大小是4,意思就是塊的大小是4B,而不是4個數據類型(字節、半字或者字)的大小。所以,要完成一個對8個字大小的陣列的循環尋址,那麼塊的大小應該為32,或者N=4。
圖1 圖1
對於ADDAW、ADDAH或者ADDAB指令,在分別完成將源操作數(src1/cst)左移2位、1位或者0位以後,再在第N位和第N+1位之間做一次帶進位和借位的加減法運算。源操作數src2的第N+1位到第31位的值不變。如果src1大於循環緩衝的大小,那麼偏移量的有效值是循環緩衝大小的模。

尋址模式存取指令地址生成語法

圖2 圖2
TMS320C62x/C64x/C67x CPU從存儲器取數據和向存儲器存數據只能使用load和store指令。圖2顯示了向存儲器間接尋址的語法規定。有時候,存儲指令需要在基礎地址上有一個比較大的偏移量,在這種情況下,可以使用B15或者B14寄存器作為基礎寄存器,使用一個15位的常數(ucst15)作為偏移量。 [1] 

尋址模式微處理器的尋址模式

微處理器在執行指令時,必然要對數據進行操作,這些數據叫做操作數。操作數可以是指令的一部分,可以存放在處理器的內部寄存器中,也可以存放在存儲器或保持在I/O端口中。為了訪問這些不同類型的操作數,微處理器提供了各種尋址模式。尋址模式一般可分為三類:寄存器操作數尋址、立即操作數尋址和存儲器操作數尋址。

尋址模式寄存器操作數尋址

寄存器尋址模式是指指令的操作數存放在處理器的內部寄存器中,這些內部寄存器包括段寄存器和通用寄存器,寄存器可以分8位、16位或32位,寄存器操作數可以用作為源操作數,也可以用作為目的操作數。
MOV指令執行過程如下:MPU首先取指令,指令地址由CS:IP的內容確定,對應的物理地址為01000H,當指令取進MPU內部的指令隊列後,存放在那裏並等待執行,此時的CS:IP將指向下一條指令地址。

尋址模式立即操作數尋址

假如指令運行的操作數就是指令的一部分,那麼這種形式的操作數叫做立即數,其對應的尋址方式為立即數尋址。立即數可以是8位、16位或32位,在指令中編碼格式,立即數放在操作碼之後。

尋址模式存儲器操作數尋址

為了訪問存儲器的操作數,MPU必須首先計算這個操作數的物理地址PA,然後開始讀或寫這個寄存器的操作數。段基地址SBA確定一個物理存儲器段的起始地址,有效地址EA表示操作數相對這個存儲器段開始的偏移量。在實地址模式下,SBA和EA組合形成實模式的物理地址SBA:EA。 [2] 
參考資料
  • 1.    周霖主編.DSP信號處理技術應用:人民郵電出版社,2004.01
  • 2.    蘇廣川、沈瑛編著.高級微型計算機系統及接口技術:人民郵電出版社,2001.06