2012-05-28 89 views
2

如何將此代碼更改爲ARM彙編指令? 我想在android內核中運行此代碼。但我不知道如何使用ARM彙編指令。如何將此代碼更改爲ARM彙編指令?

#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ 
type name(type1 arg1,type2 arg2,type3 arg3) \ 
{ \ 
long __res; \ 
__asm__ volatile ("int $0x80" \ 
     : "=a" (__res) \ 
     : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ 
       "d" ((long)(arg3))); \ 
__syscall_return(type,__res); \ 
} 

非常感謝。

+0

此代碼用於從用戶空間調用內核系統調用。你確定,你想從內核調用系統調用嗎?此代碼可以通過不同的方式在ARM彙編中實現,具體取決於您使用的ABI。 – werewindle

+0

聽起來像您需要了解如何使用ARM彙編指令。我們可以爲您編寫代碼,但如果您不知道如何使用這些說明,您將再次回到這裏尋求更改。 –

回答

2

你需要在ARM什麼是「軟件中斷」指令,它是「詮釋」大致相當於在x86:

swi 0 ; 0 is the interrupt vector for "syscall" 

您可以在這裏的概述:OSDev Wiki on ARM

的「你好,世界「ARM/Android可以在這裏找到post

+0

謝謝大家。我在ARM上找到了一個類似的代碼,它是_syscall(),所以我不必修改上面的代碼。 – Jimmy