当前位置: 技术问答>linux和unix
如何将ARM汇编代码变成GNU汇编?
来源: 互联网 发布时间:2016-05-20
本文导语: 原ARM汇编代码: #if (defined ARM_V5) || (defined ARM_V5E) __asm void RV_CDECL C_PlanarPredict( /* line1288 */ PU8 pBlock, /* pointer to upper left pel of block */ U32 uPitch, /* of reference plane */ U8 *pPredBuf /* predictors go here */ ) { stmfd sp...
原ARM汇编代码:
#if (defined ARM_V5) || (defined ARM_V5E)
__asm void RV_CDECL C_PlanarPredict( /* line1288 */
PU8 pBlock, /* pointer to upper left pel of block */
U32 uPitch, /* of reference plane */
U8 *pPredBuf /* predictors go here */
)
{
stmfd sp!,{r4-r9,lr} /* line 1294 * /
sub sp,sp,0x20 /* line 1295 * /
.....
}
直接使用make -e "CC=arm-general-linux-gnu-gcc" "CXX=arm-general-linux-gnu-g++" "DEFS= -DHAVE_CONFIG_H -DARM -DAPKWW -DARM_V6"进行编译,出现一下错误:
cdeclib/ai.c:1288: error: expected `(' before 'void'
cdeclib/ai.c: In function 'void C_PlanarPredict(U8*, U32, U8*)':
cdeclib/ai.c:1294: error: 'stmfd' was not declared in this scope
cdeclib/ai.c:1294: error: expected `;' before 'sp'
cdeclib/ai.c:1295: error: 'sub' was not declared in this scope
cdeclib/ai.c:1295: error: expected `;' before 'sp'
现在虽然知道ARM汇编和GNU汇编不能通用,但在网上搜索,未发现有以上错误的解决方法,哪位帮助解决,谢谢!
|
一般我写 C里面 嵌入式汇编这么写
void foo()
{
_asm_("
汇编语句
"
:::);
}
貌似你的汇编语句,也不符合 AT&T汇编语法呀
void foo()
{
_asm_("
汇编语句
"
:::);
}
貌似你的汇编语句,也不符合 AT&T汇编语法呀
|
一个简单的方法,放在ultraEdit中进行统一编辑,它有你需要的功能。
你可以使用ctrl+c ,然后全选输入",就会所有行的前面都是"了.
你可以使用ctrl+c ,然后全选输入",就会所有行的前面都是"了.
|
帮顶下.