在C程序中允許直接編寫匯編語言代碼,這稱作嵌入?yún)R編。C程序中嵌入?yún)R編后可以無分號(C語言的語句以分號結(jié)束,匯編語句是C語言中唯一以換行結(jié)束的語句),以關(guān)鍵詞ASM張一個嵌入?yún)R編指令,如需多個ASM語句,可以將它們放在花括號內(nèi)。
專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計、網(wǎng)站制作、商城網(wǎng)站建設(shè)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)建站的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
如果匯編程序是可執(zhí)行文件,比如exe文件,則可以使用system函數(shù)直接調(diào)用。比如下面的代碼,用system()打開windows上的記事本程序。
C程序調(diào)用匯編程序 匯編程序的設(shè)計要遵守ATPCS(ARM—Thumb Procedure Call Standard),保證程序調(diào)用時參數(shù)的正確傳遞。在匯編程序中使用EXPORT 偽操作聲明本程序,使得本程序可以被別的程序調(diào)用。
1、STR lr, [sp, #-4]! 是將lr寄存器也稱鏈接寄存器r14(用于保存子程序的返回地址)的值(32位)存入sp指向堆棧的地址,從sp到sp-3地址單元。
2、段定義前加 PRESERVE8 偽指令試一下。前兩天剛好看到 ARM UCOS 匯編代碼中用到PRESERVE8這個關(guān)鍵字(加在段定義之前),以前沒見過的,于是百度。匯編代碼沒有保持8字節(jié)棧對齊而調(diào)用C或C++代碼。
3、匯編跳至C語言代碼執(zhí)行,自動調(diào)用R0,R1等來傳遞參數(shù),比如R0傳遞給a,R1傳遞給b,以此類推。返回時自動用R0傳遞返回值。
為了建立調(diào)用與被調(diào)用模塊間的連接關(guān)系,被調(diào)用的匯編程序應(yīng)用global,說明其可被外部模塊調(diào)用;而調(diào)用程序則應(yīng)預(yù)先說明要引用的外部模塊名。下面通過我的例子進(jìn)行說明,該例是C調(diào)用add0的匯編子程序。
c中調(diào)用匯編也差不多,注意調(diào)用規(guī)則要相同。
}在C語言源碼中,可以通過內(nèi)聯(lián)匯編來直接編寫匯編程序代碼。
網(wǎng)站名稱:c語言調(diào)用匯編函數(shù)代碼 c語言調(diào)用匯編函數(shù)代碼怎么寫
瀏覽路徑:http://chinadenli.net/article27/dejphjj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、微信小程序、網(wǎng)站改版、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)