Невозможно скомпилировать файл сборки оружия с помощью armasm - PullRequest
1 голос
/ 25 июня 2010

Я использую libmpeg2 для показа видео в своем проекте карманного компьютера.В последнем выпуске этой библиотеки есть ускорение для процессора ARM, некоторые функции переписаны в сборке руки (в отдельном файле motion_comp_arm_s.S)Проблема заключается в том, что Visual Studio 9 не может скомпилировать ее, что приводит к множеству ошибок.Мой вопрос, какой компилятор сборки arm подходит для такого кода?

<code>
    .text</p>

<p>@ ----------------------------------------------------------------
    .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]
   
...

Спасибо за любую помощь

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

Это синтаксис, используемый GNU ассемблером .Сам код должен быть (более или менее) одинаковым для любого ассемблера;чтобы сделать эту сборку с помощью ассемблера Microsoft, основные изменения будут следующими:

  • Измените символы @ (обозначающие комментарии) на ;
  • Измените директивы (слова, начинающиеся с .), документированные здесь до их эквивалентов в Microsoft, документированные здесь .Например, .text становится CODE.

Это должно исправить большинство ошибок.

0 голосов
/ 26 мая 2014

Использовать компилятор 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
...