匯編程序、c/c++程序間的相互調用
發布時間:2008/12/23 0:00:00 訪問次數:990
3.匯編程序、c/c++程序間的相互調用
匯編程序、c程序及c++程序在相互調用時,特別應注意遵守相應的atpcs規則。下面舉一些例子具體說明在這些混合調用中應注意遵守的atpcs規則。
(1)c程序調用匯編程序
匯編程序的設計要遵守atpcs規則,保證程序調用時參數的正確傳遞。在匯編程序中使用export偽指令聲明本程序,使得本程序可以被別的程序調用;在c語言中使用extern關鍵詞聲明該匯編程序。下面是一個c程序調用匯編程序的例子。其中,匯編程序strcopy實現字符串復制功能,c程序調用strcopy完成字符串的復制工作。
(2)匯編程序調用c程序
匯編程序的設計要遵守atpcs規則,保證程序調用時參數的正確傳遞。在匯編程序中使用import偽指令聲明將要調用的c程序。下面是一個匯編程序調用c程序的例子。其中,在匯編程序中設置好參數的值,本例子中有5個參數,分別使用寄存器r0存放第1個參數,ri存放第2個參數,r2存放第3個參數,r3存放第4個參數,第5個參數利用數據棧傳送。由于利用數據棧傳遞參數,因此在程序調用結束后要調整數據棧指針。
(3)c++程序調用c程序
c++程序調用c程序時,在c程序中使用關鍵詞extern"c"聲明被調用的c程序。對于c++中的類或者結構,如果它沒有基類和虛函數,則相應對象的存儲結構和arm c相同。下面的例子說明了這一點。
(4)匯編程序調用c++程序
在匯編程序中使用偽指令import聲明被調用的c++程序。在匯編程序中將參數存放在數據棧中,而存放參數的數據棧的單元地址放在r0寄存器中,這樣被調用的c++程序就能訪問相應的參數。下面的例子說明了這一點。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
3.匯編程序、c/c++程序間的相互調用
匯編程序、c程序及c++程序在相互調用時,特別應注意遵守相應的atpcs規則。下面舉一些例子具體說明在這些混合調用中應注意遵守的atpcs規則。
(1)c程序調用匯編程序
匯編程序的設計要遵守atpcs規則,保證程序調用時參數的正確傳遞。在匯編程序中使用export偽指令聲明本程序,使得本程序可以被別的程序調用;在c語言中使用extern關鍵詞聲明該匯編程序。下面是一個c程序調用匯編程序的例子。其中,匯編程序strcopy實現字符串復制功能,c程序調用strcopy完成字符串的復制工作。
(2)匯編程序調用c程序
匯編程序的設計要遵守atpcs規則,保證程序調用時參數的正確傳遞。在匯編程序中使用import偽指令聲明將要調用的c程序。下面是一個匯編程序調用c程序的例子。其中,在匯編程序中設置好參數的值,本例子中有5個參數,分別使用寄存器r0存放第1個參數,ri存放第2個參數,r2存放第3個參數,r3存放第4個參數,第5個參數利用數據棧傳送。由于利用數據棧傳遞參數,因此在程序調用結束后要調整數據棧指針。
(3)c++程序調用c程序
c++程序調用c程序時,在c程序中使用關鍵詞extern"c"聲明被調用的c程序。對于c++中的類或者結構,如果它沒有基類和虛函數,則相應對象的存儲結構和arm c相同。下面的例子說明了這一點。
(4)匯編程序調用c++程序
在匯編程序中使用偽指令import聲明被調用的c++程序。在匯編程序中將參數存放在數據棧中,而存放參數的數據棧的單元地址放在r0寄存器中,這樣被調用的c++程序就能訪問相應的參數。下面的例子說明了這一點。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
上一篇:ARM C/C++編譯器
上一篇:從匯編程序中訪問C程序變量