2

私はポケットPCプロジェクトでビデオを表示するためにlibmpeg2を使用しています。このlibの最後のリリースには、ARMプロセッサ用のアクセラレーションがあり、一部の関数はarmアセンブリで(別のファイルmotion_comp_arm_s.Sで)書き直されています。問題は、Visual Studio 9のarmasmがコンパイルできないため、多くのエラーが発生することです。私の質問は、どのアームアセンブリコンパイラがそのようなコードに適しているかということです。


    .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の同等のディレクティブに変更します。たとえば、.textになりCODEます。

これにより、ほとんどのエラーが修正されます。

于 2010-06-25T11:48:32.953 に答える
0

ARMRVDSコンパイラを使用
するサンプルコードの構文は次のようになります

      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 に答える