ARM指令的尋址方式.ppt

ARM指令的尋址方式.ppt

ID:48786475

大?。?24.00 KB

頁數(shù):12頁

時間:2020-01-27

ARM指令的尋址方式.ppt_第1頁
ARM指令的尋址方式.ppt_第2頁
ARM指令的尋址方式.ppt_第3頁
ARM指令的尋址方式.ppt_第4頁
ARM指令的尋址方式.ppt_第5頁
資源描述:

《ARM指令的尋址方式.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、ARM指令的尋址方式寄存器尋址立即尋址寄存器移位尋址寄存器間接尋址變址尋址多寄存器尋址堆棧尋址塊復(fù)制尋址相對尋址尋址方式是處理器根據(jù)指令中給出的地址碼字段信息來尋找真實操作數(shù)物理地址的方式。目前ARM處理器支持9種基本的尋址方式。寄存器尋址寄存器中的數(shù)值作為操作數(shù),指令中地址碼字段給出的是寄存器編號,指令執(zhí)行時直接取出寄存器值操作。ADDR0,R1,R2;R0?R1+R2該指令的執(zhí)行效果是將寄存器R1和R2的內(nèi)容相加,其結(jié)果存放在R0寄存器中。MOVR1,R2;R1?R2該指令的執(zhí)行效果是將寄存器R2的內(nèi)容傳送到寄存器R1中。立即尋址ADDR3,R3,#1;R3?

2、R3+1ANDR8,R7,#0xff;R8?R7[7:0]SUBR0,R0,#1;R0?R0-1第2個源操作數(shù)為一個立即數(shù),以“#”為前綴,十六進制值以在“#”后加“0x”表示。立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的地址碼不是通常意義上的操作數(shù)地址,而是操作數(shù)本身。這樣的數(shù)稱為操作數(shù)。寄存器移位尋址可以采取的移位操作如有:LSL:邏輯左移(LogicalShiftLeft)。寄存器中字的低端空出的位補0。0LSR:邏輯右移(LogicalShiftRight)。寄存器中字的高端空出的位補0。0這種尋址方式是ARM指令集特有的,第2個寄存器操作數(shù)在與

3、第1個操作數(shù)結(jié)合之前,先選擇進行移位操作,再結(jié)合。ADDR3,R2,R1,LSL#3;R3?R2+8×R1MOVR0,R2,LSL,#3;R0?8×R2寄存器移位尋址ASR:算術(shù)右移(ArithmeticShiftRight)。算術(shù)移位的對象是帶符號數(shù),若源操作數(shù)為正數(shù),則字的高端空出的位補0。若源操作數(shù)為負數(shù),則字的高端空出的位補1。RRX:擴展的循環(huán)右移(RotateRightExtendedby1place)。向右移位,只移一位,左側(cè)空位由狀態(tài)寄存器C位填充,右側(cè)移出的位移進狀態(tài)位C中。ROR:循環(huán)右移(RotateRight)。從字的最低端移出的位填入字的

4、高端空出的位。C寄存器間接尋址寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,而操作數(shù)保存在寄存器指定地址的存儲單元中,即寄存器為操作數(shù)的地址指針。ADDR3,R2,[R1];R3?R2+[R1]LDRR0,[R1];R0?[R1]STRR0,[R1];[R1]?R0基址變址尋址基址變址尋址就是將寄存器(該寄存器一般為基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,形成操作數(shù)的有效地址?;纷冎穼ぶ酚糜谠L問基址附近的存儲單元,常用于查表、數(shù)組操作?;芳悠茖ぶ坊芳铀饕龑ぶ非八饕龑ぶ贩绞剑夯沸杓樱ɑ驕p)偏移來計算訪問的地址。例如:LDRR0,[R1,#4];

5、R0?[R1+4]后索引尋址方式:基址不帶偏移作為傳送的地址,傳送后自動索引。例如:LDRR0,[R1],#4;R0?[R1];R1?R1+4指令指定一個基址寄存器,再指定另一個寄存器(索引),其值作為位移加到基址上形成存儲器地址。例如:LDRR0,[R1,R2];R0?[R1+R2]多寄存器尋址LDMIAR1,{R0,R2,R5};R0?[R1];R2?[R1+4];R5?[R1+8]該指令的后綴IA表示在每次執(zhí)行完加載/存儲操作后,R1按字長度增加,指令可將連續(xù)存儲單元的值送到R0,R2,R5寄存器中。多寄存器尋址方式就是用一條指令完成多個寄存器值的傳送,允許

6、一條指令完成傳送最多16個通用寄存器的值。STMIAR1,{R0,R2,R5};[R1]?R0;[R1+4]?R2;[R1+8]?R5該指令的后綴IA表示在每次執(zhí)行完加載/存儲操作后,R1按字長度增加,指令可將R0,R2,R5寄存器的值送到連續(xù)存儲單元中。使用多寄存器尋址指令時,寄存器子集的順序由小到大的順序排列,連續(xù)的寄存器可用“-”連接,或用“,”分隔書寫。堆棧尋址堆棧是一種數(shù)據(jù)結(jié)構(gòu),操作順序分為“先進后出”(FILO)和“后進先出”(LIFO),使用一個成為堆棧指針的專用寄存器指示當(dāng)前的操作位置,堆棧指針總是指向棧頂。根據(jù)增長方向,堆棧可分為:向上生長:即向

7、高地址方向生長,稱為遞增堆棧(AscendingStack)。向下生長:即向低地址方向生長,稱為遞減堆棧(DescendingStack)。根據(jù)棧指針的指向位置,堆??煞譃椋簼M堆棧:堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)項空堆棧:堆棧指針指向下一個數(shù)據(jù)項放入的空位置滿遞增堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生產(chǎn)??者f增堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由低地址向高地址生成??者f減堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。堆棧尋址這樣就有4種類型的堆

8、棧工作方式

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。