當前位置:編程學習大全網 - 編程軟體 - 匯編語言和C語言的混合編程,如何用keilC51把.c和.asm文件編譯成壹HEX文件,請高手指點,小弟在這謝謝了!

匯編語言和C語言的混合編程,如何用keilC51把.c和.asm文件編譯成壹HEX文件,請高手指點,小弟在這謝謝了!

以個例子給妳參考,有兩個文件,壹是S.a51, 另壹個是 M.C都加到KEILL的工程中編譯。匯編中有兩個函數,註意C的參數是如何傳遞給匯編的。

S.A51

$NOMOD51

NAME SENTBYTEUP

PR?_SentByteUp?SENTBYTEUP SEGMENT CODE

DT?_SentByteUp?SENTBYTEUP SEGMENT DATA OVERLAYABLE

PUBLIC _SentByteUp

RSEG ?DT?_SentByteUp?SENTBYTEUP

_SentByteUp?BYTE:

px?040: DS 1

px?041: DS 1

RSEG ?PR?_SentByteUp?SENTBYTEUP

_SentByteUp:

USING 0

MOV A,R7

LOPU: RRC A

CLR SCKU

MOV DATU,C

SETB SCKU

DJNZ R5,LOPU

RET

PR?_SentByteDn?SENTBYTEDN SEGMENT CODE

DT?_SentByteDn?SENTBYTEDN SEGMENT DATA OVERLAYABLE

PUBLIC _SentByteDn

RSEG ?DT?_SentByteDn?SENTBYTEDN

_SentByteDn?BYTE:

px?042: DS 1

px?043: DS 1

RSEG ?PR?_SentByteDn?SENTBYTEDN

_SentByteDn:

USING 0

MOV A,R7

LOPD: RRC A

CLR SCKD

MOV DATD,C

SETB SCKD

DJNZ R5,LOPD

RET

END

M.C

#include <reg51.h>

extern void SentByteUp(uchar c,uchar b); //申明使用外部函數

extern void SentByteDn(uchar c,uchar b); //申明使用外部函數

void main(void)

{

SentByteDn(a,8);// 調用匯編的函數

SentByteUp(a,8);// 調用匯編的函數

}

jinfahua@126.com QQ505308008

  • 上一篇:delphi ex10 tpowerpointapplication 怎麽使用
  • 下一篇:使用MATLAB軟件解決以下問題:
  • copyright 2024編程學習大全網