第九章習(xí)題答案ARM程序設(shè)計(jì)ppt課件_第1頁(yè)
第九章習(xí)題答案ARM程序設(shè)計(jì)ppt課件_第2頁(yè)
第九章習(xí)題答案ARM程序設(shè)計(jì)ppt課件_第3頁(yè)
第九章習(xí)題答案ARM程序設(shè)計(jì)ppt課件_第4頁(yè)
第九章習(xí)題答案ARM程序設(shè)計(jì)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、作業(yè)作業(yè)l必做:必做:9.2-9.5、 9.8、 9.15-9.18l選做:選做:9.6、9.7、9.12、9.14l留意,除標(biāo)題明確要求外,一切的程序均采留意,除標(biāo)題明確要求外,一切的程序均采用匯編言語(yǔ)編寫(xiě)用匯編言語(yǔ)編寫(xiě) 9.2 匯編言語(yǔ)和匯編言語(yǔ)和C言語(yǔ)相比,各具有什么特點(diǎn)?言語(yǔ)相比,各具有什么特點(diǎn)?答:匯編言語(yǔ)是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)答:匯編言語(yǔ)是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)言語(yǔ),是最接近機(jī)器碼的一種言語(yǔ)。匯編言語(yǔ)依賴(lài)于言語(yǔ),是最接近機(jī)器碼的一種言語(yǔ)。匯編言語(yǔ)依賴(lài)于機(jī)器硬件,不同機(jī)器硬件,不同CPU提供的匯編指令能夠有很大的不提供的匯編指令能夠有很大的不同,因此匯編

2、源程序幾乎不具有移植性;但匯編言語(yǔ)同,因此匯編源程序幾乎不具有移植性;但匯編言語(yǔ)程序主要優(yōu)點(diǎn)是速度快、效率高,更能發(fā)揚(yáng)機(jī)器硬件程序主要優(yōu)點(diǎn)是速度快、效率高,更能發(fā)揚(yáng)機(jī)器硬件的優(yōu)點(diǎn);的優(yōu)點(diǎn); C言語(yǔ)是一種構(gòu)造化的高級(jí)言語(yǔ)。其優(yōu)點(diǎn)是可讀性好,言語(yǔ)是一種構(gòu)造化的高級(jí)言語(yǔ)。其優(yōu)點(diǎn)是可讀性好,移植容易,是普遍運(yùn)用的一種言語(yǔ)。缺陷是占用資源移植容易,是普遍運(yùn)用的一種言語(yǔ)。缺陷是占用資源較多,需求先將源程序經(jīng)過(guò)編譯成機(jī)器言語(yǔ)才干執(zhí)行,較多,需求先將源程序經(jīng)過(guò)編譯成機(jī)器言語(yǔ)才干執(zhí)行,執(zhí)行效率不如匯編高。執(zhí)行效率不如匯編高。匯編言語(yǔ)源程序匯編言語(yǔ)源程序機(jī)器言語(yǔ)程序機(jī)器言語(yǔ)程序目的代碼目的代碼匯編匯編程序匯編匯編

3、程序C言語(yǔ)源程序言語(yǔ)源程序編譯或解釋編譯程序編譯或解釋編譯程序3 9.3 試用匯編代碼完成如下試用匯編代碼完成如下C言語(yǔ)代碼完成的功能。言語(yǔ)代碼完成的功能。int gcd(int a, int b)while (a != b) if (a b) a = a-b; else b = b-a;return a;匯編實(shí)現(xiàn):匯編實(shí)現(xiàn): AREA Sub1,CODE,READ ONLYEXPORT Sub1CMP R0, R1;R0=a,R1=b MOVEQ PC,LR ;相等那么前往;相等那么前往SUBGT R0, R0, R1;帶符號(hào)數(shù)大于條件碼為;帶符號(hào)數(shù)大于條件碼為GT,無(wú)符號(hào)數(shù)為,無(wú)符號(hào)數(shù)為H

4、I SUBLT R1, R1, R0;帶符號(hào)數(shù)小于條件碼為;帶符號(hào)數(shù)小于條件碼為L(zhǎng)T,無(wú)符號(hào)數(shù)為無(wú)符號(hào)數(shù)為L(zhǎng)OLDR R2,=a;R2指向指向a STRR0,R2;更新變量;更新變量a MOV PC,LR;前往;前往END9.4 宏的定義如下面的代碼所示:宏的定義如下面的代碼所示:MICRO $aa example $bb, $cc, $dd $aa CMP $cc, #0 B$dd $bbMEND 假設(shè)在匯編程序中需求調(diào)用上面定義的宏假設(shè)在匯編程序中需求調(diào)用上面定義的宏example,那么其,那么其程序代碼如下。試寫(xiě)出下面程序被匯編后,宏展開(kāi)后的結(jié)程序代碼如下。試寫(xiě)出下面程序被匯編后,宏展開(kāi)

5、后的結(jié)果。果。lable example next, R3, NEnext宏展開(kāi)后的代碼為:宏展開(kāi)后的代碼為: label CMP R3 , #0 BNE next 9.5 編寫(xiě)一個(gè)程序段,當(dāng)存放器編寫(xiě)一個(gè)程序段,當(dāng)存放器R3中數(shù)據(jù)大于中數(shù)據(jù)大于R2中的數(shù)據(jù)時(shí),將中的數(shù)據(jù)時(shí),將R2中的中的數(shù)據(jù)加數(shù)據(jù)加10存入存放器存入存放器R3;否那么將;否那么將R2中的數(shù)據(jù)加中的數(shù)據(jù)加100存入存放器存入存放器R3,并,并把這個(gè)程序段定義成一個(gè)代碼段。把這個(gè)程序段定義成一個(gè)代碼段。AREA ADDITION,CODE,READONLYENTRYLoopCMPR3 , R2BHIGREATERADDR3 ,

6、R2 , #100BSTOPGREATERADD R3 , R2 , #10STOPEND9.6編寫(xiě)一個(gè)程序段,判別存放器編寫(xiě)一個(gè)程序段,判別存放器R5中數(shù)據(jù)能否為中數(shù)據(jù)能否為12, 18, 22, 29, 45或或67,假設(shè)是,假設(shè)是那么將那么將R0中數(shù)據(jù)加中數(shù)據(jù)加1,否那么將,否那么將R0設(shè)置為設(shè)置為0 xF,并把這個(gè)程序段定義成一個(gè)代碼,并把這個(gè)程序段定義成一個(gè)代碼段段 AREA Comp,CODE,READONLY ENTRY LDR R0,=dat;存放器;存放器R0指向指向DataT表中的數(shù)據(jù)列表表中的數(shù)據(jù)列表dat MOV R1,#7; dat表中的數(shù)據(jù)個(gè)數(shù)表中的數(shù)據(jù)個(gè)數(shù) MOV

7、 R2,#0;標(biāo)志存放器;標(biāo)志存放器R2=0那么那么R5中數(shù)中數(shù)據(jù)不在據(jù)不在dat表中表中 SUB R0,R0, #4;調(diào)整比較指針;調(diào)整比較指針 Loop SUB R1,R1, #1;調(diào)整比較次數(shù);調(diào)整比較次數(shù) BEQ Handle CMP R5,R0,#4! BNELoop MOVEQ R2,#1 Handle CMP R2,#0 ADDNE R0, R0, #1 MOVEQ R0,#0 xF Stop AREA DataT,DATA,READWRITE dat DCD 12,18,22,29,45,67;需求比較的數(shù)據(jù);需求比較的數(shù)據(jù)列表列表 END89.8 試編寫(xiě)一個(gè)循環(huán)程序,實(shí)現(xiàn)從試

8、編寫(xiě)一個(gè)循環(huán)程序,實(shí)現(xiàn)從0開(kāi)場(chǎng)開(kāi)場(chǎng)10個(gè)偶數(shù)的累加。個(gè)偶數(shù)的累加。AREA Foud,CODE,READONLYENTRY MOV R0,#0;存放累加;存放累加和和 MOV R1,#0;存放加數(shù);存放加數(shù) MOVR2,#9;累加次數(shù);累加次數(shù)Loop ADD R1,R1,#2 ADD R0,R0,R1 SUBR2,R2,#1 ;調(diào)整累加次;調(diào)整累加次數(shù)數(shù) BNE LoopStopEND9.12 試把如下試把如下C函數(shù)改寫(xiě)成匯編言語(yǔ)函數(shù)。函數(shù)改寫(xiě)成匯編言語(yǔ)函數(shù)。(1) int SubXY(int x, int y) return x-y; (2) void SubXY(int x, int y

9、, int z) z = x-y; 1 AREA SubXY ,CODE,READONLYEXPORT SubXYSUB R0,R0,R1;結(jié)果經(jīng)過(guò);結(jié)果經(jīng)過(guò)R0前前往往 MOV PC,LR;前往;前往END2 AREA SubXY ,CODE,READONLYEXPORT SubXYSUB R2,R0,R1LDRR3,=z;R3執(zhí)行執(zhí)行變量變量zSTR R2,R3;更新變;更新變量量z MOV PC,LR;前往;前往END9.14 把如下匯編言語(yǔ)函數(shù)改寫(xiě)成把如下匯編言語(yǔ)函數(shù)改寫(xiě)成C函數(shù)。函數(shù)。CMP R0, #1CMPNE R1, #1ADDEQ R2, R3, R4C函數(shù)為:函數(shù)為:voi

10、d mydo(int a, int b, int c, int d, int e) ; (R0)=a,(R1)=b,(R2)=c ; (R3)=d, R4)=e if (a!=1) if (b= =1) c=d+e;9.15 閱讀程序,闡明如下程序完成的功能。閱讀程序,闡明如下程序完成的功能。 llsearch CMP R0, #0 LDRNEB R2, R0 CMPNE R1, R2 LDRNE R0, R0, #4 BNE llsearch MOV PC, LR該程序功能為:該程序功能為: 假設(shè)假設(shè)R00,那么將,那么將R0指向的字節(jié)數(shù)據(jù)讀入指向的字節(jié)數(shù)據(jù)讀入R2; 假設(shè)假設(shè)R00且且R1

11、R2,那么將,那么將R0+4指向的雙字?jǐn)?shù)指向的雙字?jǐn)?shù)據(jù)存入據(jù)存入R0中;中; 循環(huán),直至循環(huán),直至R0=R1退出子程序。退出子程序。 9.16 閱讀程序,闡明如下程序完成的功能。閱讀程序,闡明如下程序完成的功能。 strcmp LDRB R2, R0, #1 LDRB R3, R1, #1 CMP R2, #0 CMPNE R3, #0 BEQ return CMP R2, R3 BEQ strcmp return SUB R0, R2, R3 MOV PC, LR程序功能為:程序功能為: R0指向數(shù)據(jù)串指向數(shù)據(jù)串S1的前一個(gè)字節(jié)單元,的前一個(gè)字節(jié)單元,R1指向數(shù)據(jù)指向數(shù)據(jù)串串S2的前一個(gè)字節(jié)

12、單元;依次比較字符串的前一個(gè)字節(jié)單元;依次比較字符串S1、S2中的中的字符,直至任一字符串終了;將字符,直至任一字符串終了;將S1,S2第一個(gè)不同字符或第一個(gè)不同字符或最后一個(gè)字符的差存入最后一個(gè)字符的差存入R0并前往;并前往; 9.17 閱讀程序,闡明如下程序完成的功能。閱讀程序,闡明如下程序完成的功能。 CMP R0, #maxindex LDRLO PC, PC, R0, LSL #2 B IndexOutOfRange DCD Handler0 DCD Handler1 DCD Handler2 DCD Handler3 程序功能為:程序功能為: 實(shí)現(xiàn)子程序散轉(zhuǎn):假設(shè)實(shí)現(xiàn)子程序散轉(zhuǎn):假設(shè)R0在有效范圍內(nèi)小于在有效范圍內(nèi)小于#maxindex那么跳轉(zhuǎn)到那么跳轉(zhuǎn)到Hander03所指的子程序之所指的子程序之一。一。 9.18 閱讀程序,闡明如下程序完成的功能。閱讀程序,闡明如下程序完成的功能。loop LDMIA R12!, (R0-R11)STMIA

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論