7_C語言調(diào)用匯編程序?qū)嶒?yàn)
,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),1,實(shí)驗(yàn)?zāi)康?掌握在,C,語言程序中調(diào)用匯編程序,了解,ATPCS,基本規(guī)則。,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),C,語言調(diào)用匯編程序?qū)嶒?yàn),廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),硬件:,PC,機(jī),1,臺(tái),軟件:,Windows 98/2000/XP,操作系統(tǒng),ADS 1.2,集成開發(fā)環(huán)境,2,實(shí)驗(yàn)設(shè)備,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),在,C,程序調(diào)用匯編子程序,實(shí)現(xiàn)兩個(gè)整數(shù)的加法運(yùn)算。匯編子程序的原型為:,uint32 Add(uint32 x,uint32 y),,其中,uint32,已定義為,unsigned,int,。,3,實(shí)驗(yàn)內(nèi)容,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),仔細(xì)閱讀,ARM,公司的,ATPCS,的相關(guān)文檔,比如,ATPCS.PDF(,在,ADS1.2,的,PDF,目錄下有此文件,);,仔細(xì)閱讀,光盤,“,ADS,集成開發(fā)環(huán)境及,JTAG,仿真器應(yīng)用.,pdf,”,或其它,ADS,相關(guān)資料,了解,ADS,工程編輯和,AXD,調(diào)試的內(nèi)容。,(,本實(shí)驗(yàn)使用軟件仿真,),4,實(shí)驗(yàn)預(yù)習(xí)要求,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),(1),啟動(dòng),ADS 1.2,,使用,ARM Executable Image,工程模板建立一個(gè)工程,ProgramC1,。,(2),建立源文件,Startup.S,、,Add.S,和,Test.c,,編寫實(shí)驗(yàn)程序,然后添加到工程中。,(3),設(shè)置工程鏈接地址,RO Base,為,0 x40000000,,,RW Base,為,0 x40003000,。設(shè)置調(diào)試入口地址,Image entry point,為,0 x40000000,。,(4),設(shè)置工程鏈接選項(xiàng),位于開始位置的起始代碼段設(shè)置為,Startup.o,的代碼段。,(5),編譯鏈接工程,選擇,【Project】-【Debug】,,啟動(dòng),AXD,進(jìn)行軟件仿真調(diào)試。,5,實(shí)驗(yàn)步驟,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),(6),在,Test.c,文件中的調(diào)用,Add(),的代碼處設(shè)置斷點(diǎn),然后全速動(dòng)行程序。,(7),程序在斷點(diǎn)處停止。使用,Setp,In,單步運(yùn)行程序,觀察程序是否轉(zhuǎn)到匯編程序,Add.S,。,(8),單步,/,全速運(yùn)行程序,判斷程序的運(yùn)算結(jié)果是否正確。,5,實(shí)驗(yàn)步驟,廣州致遠(yuǎn)電子有限公司,MagicARM2410,教學(xué)實(shí)驗(yàn)開發(fā)平臺(tái),在實(shí)驗(yàn)程序中,如何以指針形式傳遞參數(shù)給匯編子程序?,(,即設(shè)計(jì),uint32 Add(uint32*x,uint32*y),函數(shù),),6,思考題,