C51與匯編語言混合編程(1).C51語言中調(diào)用匯編語言程序1、在文件中選中FILE GROUP 和C51程序原文件,在配置文件選項(xiàng)中激活“i”產(chǎn)生匯編(SRC)文件,“編譯(SRC)文件”和“創(chuàng)建工程(目標(biāo))時包含“三個選項(xiàng)。
2、根據(jù)選擇的編譯模式,把相應(yīng)的庫文件(如SMALL模式,庫文件為KEIL\C51\LIB\C51S.LIB)加入到工程中。3、在C51語言中必須聲明需要調(diào)用的函數(shù)為外部函數(shù)。
extern void DELAY(void);4、在匯編語言程序中必須聲明被調(diào)用子程序?yàn)楣沧映绦颍诒徽{(diào)用的文件中還需要聲明此文件是新定位的。PUBLIC DELAY,DELDELAYY SEGMENT CODERSEG AELAYY實(shí)例如下:#include "reg51.h"extern void DELAY(void);extern void DEL(void);void main(void){ P1=0x00; DELAY(); DEL(); P!=0xff;}匯編語言文件:PUBLIC DELAY,DELDELAYY SEGMENT CODERSEG AELAYYDELAY: MOV R2,#3H DJNZ R2,$ RETDEL: MOV R3,#3H DJNZ R3,$ RET END(2)、C51語言中嵌入?yún)R編程序:在C51語言中嵌套使用匯編語言程序要注意以下幾個問題:1、在文件中選中FILE GROUP 和C51程序原文件,在配置文件選項(xiàng)中激活“i”產(chǎn)生匯編(SRC)文件,“編譯(SRC)文件”和“創(chuàng)建工程(目標(biāo))時包含“三個選項(xiàng)。
2、根據(jù)選擇的編譯模式,把相應(yīng)的庫文件(如SMALL模式,庫文件為KEIL\C51\LIB\C51S.LIB)加入到工程中。3、用#pragma asm .和#pragma endasm 語句包含嵌入的匯編語言程序。
實(shí)例如下:#include "reg51.h"void delay(void);void main(void){ void delay(void); P1=0x00; #pragma asm MOV R3,#08H DINZ R3,$ #pragma endasm P1=0xff;}void delay(void){ #pragma asm MOV R4,#08H DJNZ R4,$ #pragma endasm}。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:4.023秒