版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第?次實驗實驗名稱 學號姓名第3次實驗匯編和C語言的相互調(diào)用1第1頁共8頁計算機科學技術(shù)系上機實踐報告課程名稱:嵌入式系統(tǒng)實踐年級:上機實踐成績:指導教師:姓名:創(chuàng)新實踐成績:上機實踐名稱:匯編和C語言的相互調(diào)用學號:上機實踐日期:上機實踐編號:No.3組號:上機實踐時間:實驗?zāi)康拈喿xEmbestEduKit-III啟動代碼,觀察處理器啟動過程;學會使用EmbestIDE輔助信息窗口來分析判斷調(diào)試過程和結(jié)果;學會在EmbestIDE環(huán)境中編寫、編譯與調(diào)試匯編和C語言相互調(diào)用的程序。實驗設(shè)備硬件:EmbestEDUKIT-III(實驗平臺)PC機軟件:EmbestIDEProARM集成開發(fā)環(huán)境,Windows98/2000/NT/XP。實驗內(nèi)容使用匯編完成一個隨機數(shù)產(chǎn)生函數(shù),通過C語言調(diào)用該函數(shù),產(chǎn)生一系列隨機數(shù),存放到數(shù)組里面。C語言的編譯過程C語言程序→匯編語言程序→目標可執(zhí)行程序匯編語言的函數(shù)調(diào)用過程參數(shù)準備函數(shù)返回匯編函數(shù)間調(diào)用函數(shù)調(diào)用舉例C語言調(diào)用匯編函數(shù)匯編語言調(diào)用C語言函數(shù)命令腳本文件和鏈接腳本文件實驗原理1.ARM過程調(diào)用ATPCS(ARM)ATPCS是一系列用于規(guī)定應(yīng)用程序之間相互調(diào)用的基本規(guī)則,這此規(guī)則包括:支持數(shù)據(jù)棧限制檢查;支持只讀段位置無關(guān)(ROPI);支持可讀/寫段位置無關(guān)(RWPI);支持ARM程序和Thumb程序的混合使用;處理浮點運算。使用以上規(guī)定的ATPCS規(guī)則時,應(yīng)用程序必須遵守如下:程序編寫遵守ATPCS;變量傳遞以中間寄存器和數(shù)據(jù)棧完成;匯編器使用-apcs開關(guān)選項。關(guān)于其他ATPCS規(guī)則,用戶可以參考ARM處理器相關(guān)書籍或登錄ARM公司網(wǎng)站。程序只要遵守ATPCS相應(yīng)規(guī)則,就可以使用不同的源代碼編寫程序。程序間的相互調(diào)用最主要的是解決參數(shù)傳遞問題。應(yīng)用程序之間使用中間寄存器及數(shù)據(jù)棧來傳遞參數(shù),其中,第一個到第四個參數(shù)使用R0-R3,多于四個參數(shù)的使用數(shù)據(jù)棧進行傳遞。這樣,接收參數(shù)的應(yīng)用程序必須知道參數(shù)的個數(shù)。但是,在應(yīng)用程序被調(diào)用時,一般無從知道所傳遞參數(shù)的個數(shù)。不同語言編寫的應(yīng)用程序在調(diào)用時可以自定義參數(shù)傳遞的約定,使用具有一定意義的形式來傳遞,可以很好地解決參數(shù)個數(shù)的問題。常用的方法是把第一個或最后一個參數(shù)作為參數(shù)個數(shù)(包括個數(shù)本身)傳遞給應(yīng)用程序。ATPCS中寄存器的對應(yīng)關(guān)系如表3-5所列:表3-5ATPCS規(guī)則中寄存器列表2.main()函數(shù)與__gccmain()當應(yīng)用程序中包含了main()函數(shù),將會引起對C運行時庫的初始化。該初始化是通過函數(shù)__gccmain()實現(xiàn)的,即在main()函數(shù)入口處,編譯器會首先調(diào)用__gccmain()函數(shù),然后才是執(zhí)行編寫的代碼。__gccmain()函數(shù)在gcc的標準庫里面實現(xiàn)。當應(yīng)用程序中沒有包含main()函數(shù),將不會引起對C運行時庫的初始化。這時,C運行時庫的很多功能在應(yīng)用程序中是不能使用的。在基礎(chǔ)實驗的課程里面,我們沒有涉及到函數(shù)庫的內(nèi)容,因此,我們不打算在這里加入函數(shù)庫的使用。因此,如果我們使用main函數(shù)作為應(yīng)用程序的主函數(shù),可以在源代碼中加入一個空的__gccmain()函數(shù)(用C語言或者匯編語言均可)。圖3-14explasm工程文件設(shè)置界面實驗步驟1.考本章其他實驗,創(chuàng)建新的工程,工程名為:explasm;2.按照參考程序,重新編寫源代碼文件并分別保存為randtest.c,init.s,random.s和ldscript,并把它們加入工程里面;3.參照其他基礎(chǔ)實驗操作,按照編譯→匯編器配置→鏈接器配置→調(diào)試器配置設(shè)置新工程,并編譯、鏈接工程,如圖3-14所示;4.下載調(diào)試文件,打開memory/register/watch/variable/callstack窗口,單步執(zhí)行程序。通過以上窗口,跟蹤程序運行,觀察分析運行結(jié)果,通過實驗學會使用EmbestIDE進行應(yīng)用程序的開發(fā)與調(diào)試;5.理解和掌握實驗后,完成實驗練習題。6.習題:?編寫一個匯編程序mixop.s–實現(xiàn)函數(shù)y=mixop(x1,x2,x3)–y=x1+x2*x3–調(diào)用c2.c中的multiply函數(shù)?C程序1:c1.c–實現(xiàn)函數(shù)voidinit();–作為啟動時的起始地址–在該函數(shù)內(nèi)要調(diào)用mixop函數(shù)完成6+40*50,結(jié)果存放在變量y中。?C程序2:c2.c–實現(xiàn)函數(shù)y=multiply(x1,x2)–y=x1*x2?提示:init()函數(shù)結(jié)尾時,設(shè)置死循環(huán)調(diào)試過程、結(jié)果和分析編寫三個函數(shù)運行c1.c將常數(shù)賦值給r0,r1,r2調(diào)用mixop.s保存當前地址將r3的值放入r0將r0*r1的值放入r0R0+r4的結(jié)果存入r0總結(jié)本次實驗主要是將兩個C函數(shù)與一個匯編函數(shù)連接,從而實現(xiàn)相互調(diào)用。編譯之后調(diào)試過程中遇到了一些錯誤,后來發(fā)現(xiàn)是程序入口的地址應(yīng)該和連接腳本寫得一樣,之后調(diào)試成功。附件c1.cexternintunsignedmixop(intx1,intx2,intx3);voidinit(){inty;y=mixop(6,40,50);while(1){}}Mixop.s.globalmixop.externmultipy.textmixop:movip,spstmdbsp!,{fp,ip,lr,pc}subfp,ip,#4movr4,r0movr0,r2blmultiplyadd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學《生涯發(fā)展與輔導》2023-2024學年第一學期期末試卷
- 福建師范大學《管理信息系統(tǒng)實驗》2022-2023學年第一學期期末試卷
- 福建師范大學《地球概論》2021-2022學年第一學期期末試卷
- 2024秋國家開放大學《外國文學》形考任務(wù)1-4答案
- 健康知識大宣傳專項行動工作方案
- 安全生產(chǎn)標準化評審問題整改計劃表
- 中班幼兒線描畫教學總結(jié)
- 茶水間5S管理現(xiàn)場執(zhí)行標準表
- 小班學期末成果匯報活動方案
- 2024屆云南省文山市第二學期期末考試高三數(shù)學試題試卷
- 成人重癥患者人工氣道濕化護理專家共識
- 城市客運自動駕駛示范應(yīng)用專題調(diào)研報告 2022
- 突發(fā)事件應(yīng)急處理知識培訓
- 2024年中國教育部留學服務(wù)中心招聘筆試沖刺題含答案解析
- 2023年藥店店員專業(yè)基礎(chǔ)知識測試題及答案(一)
- 人工智能概論-人工智能概述
- 2024年道路交通安全知識答題(試題及答案)
- 小學教學教學大綱
- 運輸公司安全生產(chǎn)方針和目范本
- 私有云平臺搭建從入門到通
- 盤扣式落地外腳手架施工方案
評論
0/150
提交評論