gnu c語(yǔ)言和匯編混合編寫_第1頁(yè)
gnu c語(yǔ)言和匯編混合編寫_第2頁(yè)
gnu c語(yǔ)言和匯編混合編寫_第3頁(yè)
gnu c語(yǔ)言和匯編混合編寫_第4頁(yè)
gnu c語(yǔ)言和匯編混合編寫_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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)介

C一、GNU匯編書(shū)寫格式一、混合編程和內(nèi)聯(lián)匯編編譯【2】1.s【2】1.s和2.c編譯成一個(gè)elf 【1】1.c和2.c編譯成一個(gè)elf 二、gcc d:m最后的;不能省略,對(duì)于Casm,"output(asm-")tm+=input(C-")trmitta0b;tes; volatile",r01"r%\n\t""str%\n\t""str":")1子程序間通過(guò)寄存器RR來(lái)傳遞參數(shù),如果參數(shù)多于四個(gè),則多出的部分用堆棧傳遞,被調(diào)用的子程序在返回前無(wú)須恢復(fù)寄存器RR的內(nèi)容r棧使用r0接r在子程序中,使用寄存器RR來(lái)保存局部變量,如果在子程序中使用到了RR中的某些寄存器,子程序進(jìn)入時(shí)必須保存這些寄存器的值,在返回前必須恢復(fù)這些寄存器的值;對(duì)于子程序中沒(méi)有用到的寄存器則不必進(jìn)行這些操作,在程序中,通常只能使用寄存器RR來(lái)保存局部變量R12用作子程序間scratch寄存器(用于保存SP,在函數(shù)返回時(shí)使用該寄存器出棧),記作R13用作數(shù)據(jù)棧指針,記作R14用作連接寄存器,記作R15記作程序寄存器,記作四、 mbl:,STRBR,#1;CMPR#0判斷是否為字符串結(jié)尾BNEstrcopy如果不是,程序跳轉(zhuǎn)到strcopyMOVc,lrce>,ta{;chardesstr[]"desin;toyet,srcstr);;}ccintfcn(int,intb,int,int,int{;}m假設(shè)程序進(jìn)入f時(shí),R0中的值為itfti){,,,,;}tlSTR,,4保存返回地址lrADDR,R0計(jì)算3*i(第3個(gè)參數(shù))ADD,,R;計(jì)算5*iSTR,SP,#-4]!第5個(gè)參數(shù)通過(guò)堆棧傳遞ADD,,R1;計(jì)算4*i(第4個(gè)參數(shù))BLfcn;調(diào)用C程序ADD,,#4d五、其他實(shí)r0例二:有參數(shù)1inta=100;intc=0;( //輸出列表%0-- //輸入列表%1--a%2-- vodnotacecpu_nt(vo{""#e#defnePLC"I" asm"mscps_c,%\n\t"------CPU進(jìn)入IRQmode "mscps_c,%3\n\t" "mscps_c,%5\n\t" "mscps_c,%7"--------回到SVCmodecodeoutput部分是空的""(stk),----------------------對(duì)應(yīng)上代碼中的%0"I"(offsetof(stuctstack,abt[0])),PLC(PSR_F_BITPSR_I_BITPLC(PSR_F_BITPSR_I_BIT}nputopeandstcobbest);,"I"表示立即數(shù)(Immedateopeands),cobbes

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論