2

我正在使用 libmpeg2 在我的袖珍电脑项目中显示视频。该库的最新版本具有 ARM 处理器的加速功能,一些函数在 arm 程序集中重写(在单独的文件 motion_comp_arm_s.S 中)。问题是来自 Visual Studio 9 的 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]

...

感谢您的任何帮助

4

2 回答 2

3

这就是GNU 汇编器使用的语法。对于任何汇编程序,代码本身应该(或多或少)相同;要使用 microsoft 汇编器进行此构建,主要更改将是:

  • @将字符(表示注释)更改为;
  • 将此处记录的指令(以 开头的单词.)更改为Microsoft 等效指令,此处记录。例如变成..textCODE

这应该可以修复大部分错误。

于 2010-06-25T11:48:32.953 回答
0

使用 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.s
于 2014-05-26T10:57:20.083 回答