C51和匯編混合編程.ppt

C51和匯編混合編程.ppt

ID:56527425

大?。?82.50 KB

頁數(shù):13頁

時間:2020-06-27

C51和匯編混合編程.ppt_第1頁
C51和匯編混合編程.ppt_第2頁
C51和匯編混合編程.ppt_第3頁
C51和匯編混合編程.ppt_第4頁
C51和匯編混合編程.ppt_第5頁
C51和匯編混合編程.ppt_第6頁
C51和匯編混合編程.ppt_第7頁
C51和匯編混合編程.ppt_第8頁
C51和匯編混合編程.ppt_第9頁
C51和匯編混合編程.ppt_第10頁
資源描述:

《C51和匯編混合編程.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、C51和匯編混合編程2021/7/271C語言中嵌入?yún)R編1、在C文件中要嵌入?yún)R編代碼片以如下方式加入?yún)R編代碼:#pragmaASM;AssemblerCodeHere#pragmaENDASM2、在Project窗口中包含匯編代碼的C文件上右鍵,選擇“Optionsfor...”,點擊右邊的“GenerateAssemblerSRCFile”和“AssembleSRCFile”,使檢查框由灰色變成黑色(有效)狀態(tài);3、根據(jù)選擇的編譯模式,把相應(yīng)的庫文件(如Small模式時,是KeilC51LibC51S.Lib)加入工程中,該文件必須作為工程的最后文件

2、;2021/7/27C51S.LIB-沒有浮點運算的Smallmodel C51C.LIB-沒有浮點運算的Compactmodel C51L.LIB-沒有浮點運算的Largemodel C51FPS.LIB-帶浮點運算的Smallmodel C51FPC.LIB-帶浮點運算的Compactmodel C51FPL.LIB-帶浮點運算的Largemodel若未添加此庫文件,則會提示”UNRESOLVEDEXTERNALSYMBOL”警告。2021/7/27示例#includevoidmain(void){P2=1;#pragmaasmMOVR

3、7,#10DEL:MOVR6,#20DJNZR6,$DJNZR7,DEL#pragmaendasmP2=0;}2021/7/27Voidreset_data(void){Asmmovr0,#0dfhAsmdo_resetdata;Asmmov@r0,#00hAsmdjnzr0,do_resetdatareturn}Voidreset_data(void){asm{movr0,#0dfhdo_resetdata;mov@r0,#00hdjnzr0,do_resetdata}return}2無參數(shù)傳遞的函數(shù)調(diào)用***********************exa

4、mple.c*********************externvoiddelay100();main(){delay100;}***********************example.a51*******************?PR?DELAY100SEGMENTCODE;//在程序存儲區(qū)中定義段PUBLICDELAY100;?????//聲明函數(shù)RSEG?PR?DELAY100;???//函數(shù)可被連接器放置在任何地方DELAY100:MOVR7,#10DEL:MOVR6,#20DJNZR6,$DJNZR7,DELRETEND2021/7/27?P

5、R?DELAY100SEGMENTCODE;作用是在程序存儲區(qū)中定義段,DELAY100為段名,?PR?表示段位于程序存儲區(qū)內(nèi)PUBLICDELAY100;作用是聲明函數(shù)為公共函數(shù)RSEG?PR?DELAY100;表示函數(shù)可被連接器放置在任何地方,RSEG是段名的屬性段名的開頭為PR,是為了和C51內(nèi)部命名轉(zhuǎn)換兼容,命名轉(zhuǎn)換規(guī)律如下:CODE-?PR?XDATA-?XDDATA-?DTBIT-?BIPDATA-?PD2021/7/273有參數(shù)傳遞的函數(shù)調(diào)用****************************main.c******************

6、*********externvoidDELAY(unsignedchari,unsignedintj);main(){DELAY(10,1000);while(1);}**********************DELAY.A51****************************?PR?_DELAY?DELAY????SEGMENTCODEPUBLIC?_DELAYRSEG??PR?_DELAY?DELAY_DELAY:DJNZR4,$DJNZR5,$DJNZR7,$RETEND2021/7/27不同類型的數(shù)據(jù)及其傳遞參數(shù)的寄存器表參數(shù)類型chari

7、ntlong/float通用指針第1個R7R6&R7R4-R7R1-R3第2個R5R4&R5R4-R7R1-R3第3個R3R2&R3--R1-R32021/7/274函數(shù)的返回值傳遞參數(shù)**************main.c******************unsignedintexample(unsignedchari){return(i*i);}main(){example(80);#pragmaasmDJNZR7,$DJNZR6,$#pragmaendasmwhile(1);}2021/7/27函數(shù)返回值所用的寄存器返回值類型寄存器說明BitC由具

8、體標(biāo)志位返回char/unsignedchar/1b

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。