2

このコードを 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); \
}

どうもありがとう。

4

1 に答える 1

2

ARM で必要なのは、x86 の「int」にほぼ相当する「ソフトウェア割り込み」命令です。

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

ここで概要を取得できます: OSDev Wiki on ARM

ARM/Android の「hello, world」は、この投稿にあります。

于 2012-05-29T18:35:57.170 に答える