ARM體系結(jié)構(gòu)與編程(第2版)第2章_第1頁(yè)
ARM體系結(jié)構(gòu)與編程(第2版)第2章_第2頁(yè)
ARM體系結(jié)構(gòu)與編程(第2版)第2章_第3頁(yè)
ARM體系結(jié)構(gòu)與編程(第2版)第2章_第4頁(yè)
ARM體系結(jié)構(gòu)與編程(第2版)第2章_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第2章章 ARM指令分類及其尋址方式指令分類及其尋址方式在本章中,將介紹在本章中,將介紹ARM指令分類以及各類指令對(duì)指令分類以及各類指令對(duì)應(yīng)的尋址方式。應(yīng)的尋址方式。22.1 ARM指令集概要介紹指令集概要介紹在本節(jié)中,將介紹在本節(jié)中,將介紹ARM指令相關(guān)的一些基本概念,指令相關(guān)的一些基本概念,包括指令的分類、指令的一般編碼格式以及包括指令的分類、指令的一般編碼格式以及ARM指令中的條件碼。指令中的條件碼。32.1.1 ARM指令的分類指令的分類ARM指令集可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指令、指令集可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指令、程序狀態(tài)寄存器程序狀態(tài)寄存器(PSR)傳輸指令、傳輸指令、Load

2、/Store指令、協(xié)處理器指令和異常中斷產(chǎn)生指令指令、協(xié)處理器指令和異常中斷產(chǎn)生指令6類。類。42.1.2 ARM指令的一般編碼格式指令的一般編碼格式ARM指令字長(zhǎng)為固定的指令字長(zhǎng)為固定的32位。一條典型的位。一條典型的ARM指指令編碼格式如下:令編碼格式如下:31 28 27 25 24 21 20 19 16 15 12 11 8 7 0其中的符號(hào)及參數(shù)說(shuō)明如下。其中的符號(hào)及參數(shù)說(shuō)明如下。opcode:指令操作符編碼。cond:指令執(zhí)行的條件編碼。S:決定指令的操作是否影響CPSR的值。Rd:目標(biāo)寄存器編碼。Rn:包含第1個(gè)操作數(shù)的寄存器編碼。shifter_operand:表示第2個(gè)操作

3、數(shù)。5cond0 0 1opcodeS Rn Rdshifter_operand2.1.3 ARM指令的條件碼域指令的條件碼域條件碼共有條件碼共有16個(gè),各條件碼的含義和助記符如表個(gè),各條件碼的含義和助記符如表2.1所示。可條件執(zhí)行的指令可以在其助記符的擴(kuò)所示。可條件執(zhí)行的指令可以在其助記符的擴(kuò)展域加上條件碼助記符,從而在特定的條件下執(zhí)行。展域加上條件碼助記符,從而在特定的條件下執(zhí)行。參見教材P2362.2 ARM指令的尋址方式指令的尋址方式ARM指令的尋址方式有以下幾種,分別進(jìn)行討論:指令的尋址方式有以下幾種,分別進(jìn)行討論:數(shù)據(jù)處理指令的操作數(shù)的尋址方式。字及無(wú)符號(hào)字節(jié)的Load/Store

4、指令的尋址方式。雜類Load/Store指令的尋址方式。批量Load/Store指令的尋址方式。協(xié)處理器Load/Store指令的尋址方式。72.2.1 數(shù)據(jù)處理指令的操作數(shù)的尋址方式數(shù)據(jù)處理指令的操作數(shù)的尋址方式通常數(shù)據(jù)處理指令的格式如下所示:通常數(shù)據(jù)處理指令的格式如下所示: S , 其中的符號(hào)及參數(shù)說(shuō)明如下。其中的符號(hào)及參數(shù)說(shuō)明如下。:是指令助記符,如ADD表示算術(shù)加操作指令。:表示指令執(zhí)行的條件。S:決定指令的操作是否影響CPSR的值。:表示目標(biāo)寄存器。:表示包含第1個(gè)操作數(shù)的寄存器。:表示第2個(gè)操作數(shù)。82.2.1 數(shù)據(jù)處理指令的操作數(shù)的尋址方式數(shù)據(jù)處理指令的操作數(shù)的尋址方式通常有下面

5、通常有下面3種格式。種格式。(1)立即數(shù)方式。(2)寄存器方式。(3)寄存器移位方式。數(shù)據(jù)處理指令操作數(shù)的具體尋址方式有下面數(shù)據(jù)處理指令操作數(shù)的具體尋址方式有下面11種。種。#, LSL #, LSL , LSR #, LSR , ASR #, ASR , ROR #, ROR , RRX92.2.2 字及無(wú)符號(hào)字節(jié)的字及無(wú)符號(hào)字節(jié)的Load/Store指令的尋址方式指令的尋址方式各種類型的各種類型的Load/Store指令的尋址方式由兩部分組指令的尋址方式由兩部分組成。一部分為一個(gè)的基址寄存器;另一部分為一個(gè)成。一部分為一個(gè)的基址寄存器;另一部分為一個(gè)地址偏移量?;芳拇嫫骺梢詾槿我粋€(gè)通用寄

6、存地址偏移量?;芳拇嫫骺梢詾槿我粋€(gè)通用寄存器;地址偏移量可以有以下器;地址偏移量可以有以下3種格式:種格式:立即數(shù)。寄存器。寄存器及一個(gè)移位常數(shù)。同樣,尋址方式的地址計(jì)算方法有如下同樣,尋址方式的地址計(jì)算方法有如下3種:種:偏移量方法。事先更新方法。事后更新方法。102.2.2 字及無(wú)符號(hào)字節(jié)的字及無(wú)符號(hào)字節(jié)的Load/Store指令的尋址方式指令的尋址方式LDR指令的語(yǔ)法格式如下所示:指令的語(yǔ)法格式如下所示: LDRB T,其中,其中,表示第表示第2個(gè)操作數(shù)的內(nèi)存?zhèn)€操作數(shù)的內(nèi)存地址,共有如下地址,共有如下9種格式:種格式:, #+/, +/, +/,#, #+/!, +/!, +/,#!,

7、 #+/, +/, +/,#112.2.3 雜類雜類Load/Store指令的尋址方式指令的尋址方式這里所說(shuō)的雜類這里所說(shuō)的雜類Load/Store指令,包括操作數(shù)為半字指令,包括操作數(shù)為半字(無(wú)符無(wú)符號(hào)數(shù)或帶符號(hào)數(shù)號(hào)數(shù)或帶符號(hào)數(shù))數(shù)據(jù)的數(shù)據(jù)的Load/Store指令;操作數(shù)為帶符號(hào)指令;操作數(shù)為帶符號(hào)的字節(jié)數(shù)據(jù)的的字節(jié)數(shù)據(jù)的Load 指令;雙字的指令;雙字的Load/Store指令。這類指指令。這類指令的語(yǔ)法格式為:令的語(yǔ)法格式為: LDR|STRH|SH|SB|D , 其中,其中,是指令中內(nèi)存單元的尋址方是指令中內(nèi)存單元的尋址方式,具體有以下式,具體有以下6種格式:種格式:, #+/, +

8、/, #+/!, +/!, #+/, +/122.2.4 批量批量Load/Store指令的尋址方式指令的尋址方式一條批量一條批量Load/Store指令可以實(shí)現(xiàn)在一組寄存器和指令可以實(shí)現(xiàn)在一組寄存器和一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。其語(yǔ)法格式如一塊連續(xù)的內(nèi)存單元之間傳輸數(shù)據(jù)。其語(yǔ)法格式如下:下:DM|STM !, 其中,指令中寄存器和內(nèi)存單元的對(duì)應(yīng)關(guān)系滿足這其中,指令中寄存器和內(nèi)存單元的對(duì)應(yīng)關(guān)系滿足這樣的規(guī)則,即編號(hào)低的寄存器對(duì)應(yīng)于內(nèi)存中的低地樣的規(guī)則,即編號(hào)低的寄存器對(duì)應(yīng)于內(nèi)存中的低地址單元,編號(hào)高的寄存器對(duì)應(yīng)于內(nèi)存中的高地址單址單元,編號(hào)高的寄存器對(duì)應(yīng)于內(nèi)存中的高地址單元,元,中存放地址

9、塊的最低地址值。中存放地址塊的最低地址值。132.2.4 批量批量Load/Store指令的尋址方式指令的尋址方式表示地址的變化方式,有以表示地址的變化方式,有以下下4種方式。種方式。IA (Increment After):事后遞增方式。IB (Increment Before):事先遞增方式。DA (Decrement After):事后遞減方式。DB (Decrement Before):事先遞減方式。批量批量Load/Store指令的編碼格式如下:指令的編碼格式如下:142.2.4 批量批量Load/Store指令的尋址方式指令的尋址方式1. 事后遞增方式事后遞增方式IA2. 事先遞增方式事先遞增方式IB3. 事后遞減方式事后遞減方式DA4. 事先遞減方式事先遞減方式DB5. 對(duì)應(yīng)于棧操作的尋址方式對(duì)應(yīng)于棧操作的尋址方式152.2.5 協(xié)處理器協(xié)處理器Load/Store指令的尋址方式指令的尋址方式一條協(xié)處理器一條協(xié)處理器Load/Store指令可以在指令可以在ARM處理器和協(xié)處理處理器和協(xié)處理器之間傳輸批量數(shù)據(jù)。其語(yǔ)法格式如下:器之間傳輸批量數(shù)據(jù)。其語(yǔ)法格式如下:L ,其中,其中,表示地址的變化方式,有以下表示地址的變化方式,有以下4種格式:種格式:,#+/*4,#+/*4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論