組合語言與c語言如何混合程式設計

時間 2022-07-11 00:20:02

1樓:匿名使用者

以個例子給你參考,有兩個檔案,一是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

retendm.c

#include

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

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

void main(void)

[email protected] qq505308008

2樓:匿名使用者

是pc機還是微控制器,微控制器還有很多種,各種開發環境下是不一樣的。你講得不清楚,別人無法幫你。

微控制器組合語言程式設計,全國微控制器組合語言程式設計師

org 0000h main mov dptr,3000h clr r0 clr r1 clr r2 mov r3,100 loop mov a,dptr clr c cjne a,0h,loop1 inc r0 djnz r3,loop loop1 rl a jc fushu inc r1 djn...

學習微控制器,如果不大懂程式語言(C組合語言也不懂,可以嗎

硬體語言至少要懂一樣,不過所謂一藝通而百藝通,懂一樣一般就很多都懂了 微控制器用c 到沒聽說過。從0開始吧 微控制器都是用c的啊,沒聽過用c 的。c和彙編都是必須的啊 中國死狗 最近很多人都在問如何學習程式設計。我覺得學習程式設計最重要的是入門,如果你入門的時候有一個好的方法和思路,打下比較紮實的基...

求助大神組合語言程式設計,求助大神,程式設計題(組合語言的)

編譯尋求大神 datas段 圖db 9 5 2 3 8 datas ends 堆疊段db 100 dup stacks ends 碼分部assume cs codes,ds datas,ss stacks start mov ax,datas mov ds,ax 到mov cx,4 lp0 a mo...