我正在使用libmpeg2在我的pocket pc项目中显示视频。此库的最新版本为ARM处理器提供了加速,其中一些函数在arm汇编中进行了重写(在单独的文件motion_comp_arm_s.S中)。问题是来自Visual Studio9的armasm不能编译它,产生了很多错误。我的问题是,哪种arm汇编编译器适合这样的代码?
.text
@ ----------------------------------------------------------------
.align
.global MC_put_o_16_arm
MC_put_o_16_arm:
@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
pld [r1]
stmfd sp!, {r4-r11, lr} @ R14 is also called LR
and r4, r1, #3
adr r5, MC_put_o_16_arm_align_jt
add r5, r5, r4, lsl #2
ldr pc, [r5]
...
Thank you for any help发布于 2010-06-25 19:48:33
这是GNU assembler使用的语法。代码本身对于任何汇编器都应该(或多或少)相同;要使用microsoft汇编器进行此构建,主要的更改将是:
;
@字符(表示注释)更改为将指令(以.开头的单词)记录的here更改为它们的微软等效项、记录的here。例如,.text变成了CODE.这应该可以修复大多数错误。
发布于 2014-05-26 18:57:20
使用ARM RVDS编译器
示例代码的语法如下所示
AREA ARMex, CODE, READONLY
ENTRY
START
MOV R0,#1
MOV R1,#2
ADD R0,R0,R1
END将代码另存为test.s
编译和生成目标文件的命令是
armasm --arm test -o test.shttps://stackoverflow.com/questions/3116403
复制相似问题