學習嵌入式開發,匯編語言程序如何調用C語言程序的呢?粵嵌嵌入式培訓課程是這樣介紹。
為了保證程序調用時參數的正確傳遞,匯編語言程序的設計要遵守ATPCS。在C語言程序中,不需要使用任何關鍵字來聲明將被匯編語言調用的C語言程序,但是在匯編語言程序調用該C語言程序之前,需要在匯編語言程序中使用IMPORT偽操作聲明來聲明該C語言程序。在匯編語言程序中通過BL指令來調用子程序。在示例中,匯編程序strcopy完成字符串賦值功能,C語言程序調用strcopy完成字符串的復制工作。
示例:匯編語言程序調用C語言程序
int g(int a,int b,int c,int d,int e)
{
return a+b+c+d+e;
}
匯編語言程序調用C語言程序g()計算5個整數i,2xi,3xi,4xi,5xi的和。
匯編語言源程序:
EXPORT f
AREA f,CODE,READONLY
IMPORT g ;在R0中
STR LR,[SP,#-4]! ;預先保存LR
ADD R1,R0,R0 ;計算2xi(第2個參數)
ADD R2,R1,R0 ;計算3xi(第3個參數)
ADD R1,R0,R0 ;計算5xi(第5個參數)
STR R3,[SP,#-4]! ;將5個參數壓入堆棧
ADD R3,R1,R1 ;計算4xi(第4個參數)
BL g ;調用C語言程序g()
ADD SP,SP,#4 ;調整數數據棧指針,準備返回
LDR PC,[SP],#4 ;從子程序返回
END
Linux內核分析
Linux的源代碼具有開放性,其內核灰機了無數編程人員的編程思想,吸引著一批批的開發者去研究它。深刻領悟Linux內核的編程思想,將是學習嵌入式Linux系統編程的基礎。嵌入式培訓課程只有構造出更加精簡、高效的嵌入式Linux內核,才可編寫出更高質量的驅動程序與應用程序。
學習嵌入式培訓課程,粵嵌提供嵌入式學習平臺,通過嵌入式開發的學習,讓你不斷進步。