我正在尝试使用NDK为Android编译一些给定的汇编程序文件(.S)。不幸的是,每行都会出现相同的错误:错误:错误指令
代码摘录:
#define FLAG_C 70(%ebx)
lsr_carry:
cmpb $32, %cl
jae lsr_carry_32
testb %cl, %cl
je lsr_carry_zero
shrl %cl, %eax
setc FLAG_C
lsr_carry_zero:
ret
lsr_carry_32:
jne ls_carry_33
shll $1, %eax
setc FLAG_C
xorl %eax, %eax
ret
ls_carry_33:
xorl %eax, %eax
movb %al, FLAG_C
ret
我想我还没有理解汇编编程的基础知识。有人可以帮助我吗?
答案 0 :(得分:6)
您正在尝试编译x86代码。大多数Android设备在ARM上运行,而公共NDK仅在ARM上运行。
答案 1 :(得分:2)
看起来你正试图将x86程序集插入Android?目前大多数Android设备都使用ARM架构,这是一种完全不同的语言,具有完全不同的操作码。
除此之外,我建议首先不要使用Assembly(好吧,除非你有现有的代码试图移植。)