1. gzyueqian
      18529173453

      嵌入式培訓(xùn)有關(guān)C語(yǔ)言中的小技巧——參數(shù)傳遞的學(xué)習(xí)

      更新時(shí)間: 2019-04-02 15:23:51來源: 嵌入式培訓(xùn)瀏覽量:5714

        凡是從事IT行業(yè)的朋友或者同事,不管是做前端還是后臺(tái),基本上都有在大學(xué)或者自己私底下學(xué)過C語(yǔ)言,但是卻對(duì)這門語(yǔ)言的認(rèn)知很缺乏。學(xué)習(xí)嵌入式開發(fā)的人更能體會(huì)到C語(yǔ)言的重要性。今天嵌入式培訓(xùn)帶大家學(xué)習(xí)的是C語(yǔ)言中的小技巧——參數(shù)傳遞。

        為了使用單獨(dú)編譯的C語(yǔ)言程序和匯編程序能夠互相調(diào)用,定義了統(tǒng)一的函數(shù)過程調(diào)用標(biāo)準(zhǔn)ATPCS。嵌入式培訓(xùn)了解到,ATPCS定義了寄存器組中的{R0~R3}作為參數(shù)傳遞和結(jié)果返回寄存器。如果參數(shù)數(shù)目超過4個(gè),則使用堆棧進(jìn)行傳遞。由于內(nèi)部寄存器的訪問速度遠(yuǎn)遠(yuǎn)大于存儲(chǔ)器,所以要盡量使參數(shù)傳遞在寄存器里面進(jìn)行,即應(yīng)盡量把函數(shù)的參數(shù)控制在4個(gè)以下。
        示例 匯編函數(shù)調(diào)用的參數(shù)傳遞。
        從C語(yǔ)言中直接調(diào)用匯編語(yǔ)言函數(shù)
        extern void strcopy(char *d,const char *s);
        int main(void){
        const       char src="Source";
        char dest[10];
        ...
        strcopy(dest,src);
        ...
        }
        AREA     StrCopy,CODE,READONLY
        EXPORT strcopy
        strcopy
        LDRB     R2,[R1],#1
        STRB      R2,[R0],#1
        CMP              R2,#0
        BNE              strcopy
        MOV             PC,LR
        END
        上面這個(gè)例子中的函數(shù)strcopy用匯編來實(shí)現(xiàn),根據(jù)ATPCS的定義,函數(shù)參數(shù)從左到右由寄存器進(jìn)行傳遞,所以在匯編中直接由R0和R1進(jìn)行引用。這樣,在C語(yǔ)言和匯編語(yǔ)言之間進(jìn)行調(diào)用就容易實(shí)現(xiàn)了。

        嵌入式C語(yǔ)言中的參數(shù)傳遞就講到這里,一般學(xué)C語(yǔ)言的時(shí)候,粵嵌嵌入式培訓(xùn)會(huì)建議:大家學(xué)習(xí)C語(yǔ)言可以先在一個(gè)平臺(tái)上扎根,然后開始接觸這個(gè)平臺(tái)上,C語(yǔ)言用于處理各種東西的庫(kù)是怎樣的,并運(yùn)用他們,熟悉他們,到了一定的積累程度后,你會(huì)發(fā)現(xiàn)C語(yǔ)言真的可以做很多事情。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线播放AⅤ免费播放国产 日韩一区二区在线|欧洲 | 亚洲成Av人片乱码色午夜刚交 | 亚洲国产午夜看片 | 五月婷婷在线视频免费 | 在线观看AV的 | 亚洲精品国产品国语在线观看 |