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

时间:2012-05-28 14:23:25

标签: assembly arm

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

非常感谢。

1 个答案:

答案 0 :(得分:2)

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

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

您可以在此处获得概述:OSDev Wiki on ARM

可以在此post

中找到ARM / Android的“hello,world”