51微控制器程式設計時彙編和C語言如何結合

2021-05-13 16:32:28 字數 3808 閱讀 3069

1樓:匿名使用者

c語言和組合語言之間主要存在:相互呼叫、混合程式設計等關係,舉例來說吧:

1、c語言呼叫匯編回子程式答

此時,彙編子程式需要申明為外部程式

#include

extern void delay(void)sbit pluse=p1^0;

main()

}彙編子程式:

彙編部分需要做如此處理。

public delay

delay segment code

rseg delay

delay:

mov r2,#250

djnz r2,$

retend

2:c語言中嵌入彙編,這個比較簡單用巨集指令包含進來就可以實現。

void delay(void)

51微控制器程式設計時彙編和c語言如何結合

2樓:匿名使用者

c語言和組合語言之間主要存在:相互呼叫、混合程式設計等關係,舉例來說吧:

1、c語言呼叫匯編子程式

此時,彙編子程式需要申明為外部程式

#include

extern void delay(void)sbit pluse=p1^0;

main()

}彙編子程式:

彙編部分需要做如此處理。

public delay

delay segment code

rseg delay

delay:

mov r2,#250

djnz r2,$

retend

2:c語言中嵌入彙編,這個比較簡單用巨集指令包含進來就可以實現。

void delay(void)

3樓:匿名使用者

在keil工程欄中右鍵.c檔案 選擇options for file然後把這2個勾上

就能在c語言中嵌入彙編了。

格式是這樣的或者

4樓:匿名使用者

中西結合 專業**胃必治

51系列微控制器混合程式設計時候 c語言定義的變數如何傳遞到組合語言? 10

5樓:匿名使用者

一般建議在組合語言裡定義變數,c語言的變數受很多因素影響,不一定都可以傳遞給彙編。

大部分c語言全域性變數可以直接在彙編中使用,區域性變數不是特別熟悉不要亂用,容易受到優化的影響。

6樓:匿名使用者

一般建議在組合語言中定義的變數,c語言變數影響的因素很多,不一定可以傳遞給彙編器。

大多數c語言的全域性變數,可以直接用於編制,區域性變數是不是特別熟悉,不要亂用,容易受到影響的優化。

7樓:匿名使用者

同一樓,c語言操作變數我們看到的只是「名稱」,如果轉到彙編去操作這個變數,那麼只能找到這個變數的共性-地址,確定了地址,彙編就可以去操作了

8樓:匿名使用者

可以強制對變數的地址進行固定,然後彙編操作相應的地址就行了

9樓:匿名使用者

通過r0~r7傳遞引數

如何在51微控制器使用c語言跟組合語言?

10樓:匿名使用者

如何用keil在

baic中嵌入彙編

要在duc檔案zhi中要嵌入彙編dao的地方用#pragma a**和#pragma enda**分隔開來內

具體請查容看:

11樓:匿名使用者

keil c 手冊裡有介紹

在c檔案中要嵌入彙編的地方用#pragma a**和#pragma enda**分隔開來

12樓:120馬恆偉

要問什麼啊,是程式呢,還是哪個流程

13樓:匿名使用者

c語言編個延時程式比彙編要簡單得多,直接寫個c語言程式比就行了。

在c51語言中如何嵌入組合語言

14樓:匿名使用者

右擊工程的資料夾 把庫檔案新增進去 像新增檔案一樣

學51微控制器用匯編還是用c語言比較好?先學彙編可以嗎?

15樓:晨曦問

絕對可以,我就是先學習的組合語言,只有學習了彙編才能真正的瞭解微控制器。。 如果不瞭解微控制器的構造及原理,學c很快就會厭倦。不過c就是簡單點,容易上手, 我先學的是彙編,也感覺不是很難。

16樓:匿名使用者

從絕大多數資深微控制器從業人員的經驗來看,學習微控制器從彙編入手,內

逐步過渡到c語言這容麼一個過程最好。因為組合語言最直接的接觸硬體各個介面,弄懂了組合語言,硬體介面和控制模組基本上就掌握了,駕馭起來就會得心應手,之後再用c語言來編制複雜程式就能揮灑自如了。

17樓:匿名使用者

先學習c語言哦,c語言更簡單,並且現在的微控制器程式基本上都用c語言寫更加簡單哦,匯內編學起來較

容難點,雖然學會了彙編可以更好的瞭解程式的執行過程,用匯編編寫**量非常大也要求思路很清楚,對於新手來說最好就用c哦,比如叫你寫了延時函式,用c很簡單,幾句話就可以,但彙編的話 你首先得知道有哪些暫存器,**也比較多

18樓:匿名使用者

先學c吧,簡單點

沒程式設計基礎學彙編有點難度

19樓:

當然可以,不過個人建議直接學習c比較好點。

20樓:尼古丁___憂傷

這個沒有先後,但個人感覺c語言好學一點。

51微控制器中組合語言如何呼叫c的子程式?

21樓:匿名使用者

我的程式是keil編譯的,如下

先申明extrn code (_send_crc) ;send_crc是c中的函式,彙編中加了_

呼叫的時候

lcall _send_crc

如果要專

使用c中的變數,那麼code變成

屬相應的data,xdata等

22樓:匿名使用者

我的程bai序keil編譯器,

extrn code(du_send_crc)的第一個國家zhisend_crc c函式編譯加上呼叫dao_lcall _send_crc

如果您要成相應的資料,然內後使用容變數在c,xdata**

23樓:匿名使用者

我的程來序keil編譯器,

extrn code(_send_crc)的第一自個國家send_crc c函式編譯加上bai呼叫_lcall _send_crc

如果您要成相應du的zhi資料,然後使用變數dao在c,xdata**

24樓:匿名使用者

用逆向思維考慮就是在c語言下插入彙編

25樓:匿名使用者

查查c的編譯

器和彙編編譯器的資料,上面有詳細的說明。

一般在彙編中用extern宣告外專部函式,將c語言中屬的函式名前面加上下劃線就是彙編的函式名,有些編譯器是這樣的,並不是所有的編譯器都是這樣的。還是要查編譯器的使用說明才能知道你用的編譯器是怎麼操作的。

如果是keil,應該是上面的操作。

26樓:匿名使用者

請您留下郵箱,我給您個檔案,您就知道如何

51微控制器程式設計,用C語言,51微控制器程式設計時彙編和C語言如何結合?

給你一個矩陣鍵盤的參考程式 行列掃描 通過高四位全部輸出低電平,低四位輸出高電平。當接收到的資料,低四位不全為高電平時,說明有按鍵按下,然後通過接收的資料值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪...

微控制器彙編程式,微控制器(組合語言)程式

這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...

求51微控制器c語言教程 ,求51微控制器c語言教程 pdf

微控制器學習方法 網上微控制器資料很多 你上csdn上找吧 那上面多的是 這個網上的太多了。你搜一下,有很多 的。這種東西多得很,你應該先搜搜再提問 急求郭天祥 新概念51微控制器c語言教程 入門 提高 開發 拓展全攻略 pdf 這是郭天祥這本書最完整的pdf,是整本的,不是一部分。望採納 從入門到...