C語(yǔ)言中調(diào)用匯編語(yǔ)言詳解
1.建立新工程
首先點(diǎn)擊Project里面的 New uVision Project
然后輸入文件名,點(diǎn)擊保存即可。
在你命名的project中創(chuàng)造一個(gè)匯編程序與c程序
c程序
#include<stdio.h> extern void Init_1(void); int main() { Init_1(); return 0; }
匯編程序
AREA My_Function,CODE,READONLY EXPORT Init_1 Init_1 MOV R1,#0 MOV R2,#0 LOOP CMP R1,#10 BHS LOOP_END ADD R2,#1 ADD R1,#1 B LOOP LOOP_END NOP END
然后進(jìn)行設(shè)置,點(diǎn)擊Debug,勾選Use Simulator,將dialog dll下改為DARMSTM.dll ,將parameter下改為-pSTM32F103ve
注意:parameter中的調(diào)試型號(hào)要與最初選擇的芯片一致
2.改寫程序
c語(yǔ)言
#include<stdio.h> extern int Init_1(); int Init_1() { int x=5; return x+100; }
匯編語(yǔ)言
IMPORT Init_1 AREA MYCODE, CODE EXPORT __main __main BL Init_1 END
解釋:這里的IMPORT Init_1 表示匯編程序里面進(jìn)口或引入C里面的函數(shù)Init_1。
結(jié)果
3.總結(jié)
通過(guò)這次實(shí)驗(yàn),我熟悉了keil5下匯編語(yǔ)言和C語(yǔ)言的混用,既能在C語(yǔ)言里面調(diào)用匯編程序,也能在匯編程序里面調(diào)用C函數(shù),也更加清楚地了解了寄存器的原理。
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++?解決求兩個(gè)鏈表的第一個(gè)公共結(jié)點(diǎn)問(wèn)題
本文主要介紹了利用C++實(shí)現(xiàn)輸入兩個(gè)無(wú)環(huán)的單向鏈表時(shí),找出它們的第一個(gè)公共結(jié)點(diǎn)的問(wèn)題。文章中的示例代碼簡(jiǎn)潔易懂,感興趣的同學(xué)可以和小編一起學(xué)習(xí)一下2021-12-12C++中繼承與多態(tài)的基礎(chǔ)虛函數(shù)類詳解
這篇文章主要給大家介紹了關(guān)于C++中繼承與多態(tài)的基礎(chǔ)虛函數(shù)類的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09C語(yǔ)言代碼實(shí)現(xiàn)簡(jiǎn)單掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01C/C++利用棧和隊(duì)列實(shí)現(xiàn)停車場(chǎng)管理系統(tǒng)
數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)一般都不是很好理解,今天小編為大家總結(jié)了一下c和c++版本的常見棧和隊(duì)列的的停車場(chǎng)管理程序,需要的小伙伴可以參考一下2022-06-06