Assembly 如何将此代码更改为ARM汇编指令?

Assembly 如何将此代码更改为ARM汇编指令?,assembly,arm,Assembly,Arm,如何将此代码更改为ARM汇编指令? 我想在android内核中运行这段代码,但我不知道如何使用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

如何将此代码更改为ARM汇编指令? 我想在android内核中运行这段代码,但我不知道如何使用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); \
}

非常感谢。

ARM上需要的是“软件中断”指令,它大致相当于x86上的“int”:

swi 0  ;  0 is the interrupt vector for "syscall"
您可以在此处获得概述:


ARM/Android的“hello,world”可以在这里找到

这段代码用于从用户空间调用内核系统调用。您确定要从内核调用syscalls吗?这段代码可以在ARM汇编中以不同的方式实现,具体取决于您使用的ABI。听起来您需要学习如何使用ARM汇编指令。我们可以为您编写代码,但如果您不知道如何使用说明,您将再次回到这里请求更改。谢谢您。我在ARM上找到了类似的代码,它是_syscall()。因此我不必修改上面的代码。