c調(diào)用python c語言中如何調(diào)用匯編程序?
c語言中如何調(diào)用匯編程序?匯編怎樣調(diào)用C?匯編調(diào)用C,根據(jù)函數(shù)調(diào)用規(guī)范傳遞參數(shù)(即棧壓),常用的函數(shù)調(diào)用規(guī)范有stdcall,cdecl等。,cdecl是常見的缺失調(diào)用規(guī)范。如果是cdecl,則堆棧清
c語言中如何調(diào)用匯編程序?
匯編怎樣調(diào)用C?
匯編調(diào)用C,根據(jù)函數(shù)調(diào)用規(guī)范傳遞參數(shù)(即棧壓),常用的函數(shù)調(diào)用規(guī)范有stdcall,cdecl等。,cdecl是常見的缺失調(diào)用規(guī)范。如果是cdecl,則堆棧清理操作由調(diào)用方處理,也就是說,程序集需要在C函數(shù)返回后清除堆棧。
另外,匯編調(diào)用C,還要處理ABI的返回值,常用的arm ABI oabi、EABI等,相關(guān)的返回值在哪個(gè)寄存器中。
C調(diào)用程序集。除了按照上述函數(shù)調(diào)用規(guī)范和ABI規(guī)范處理參數(shù)和返回值外,assembly還應(yīng)該使用MOV、PC、LR返回C,即當(dāng)C調(diào)用發(fā)生時(shí),LR有調(diào)用的返回地址