Domanda

Sto usando libmpeg2 per aver mostrato il video nel mio progetto Pocket PC. Dall'ultimo rilascio lib ha accelerazione per processore ARM, alcune delle funzioni vengono riscritti nel braccio di montaggio (in motion_comp_arm_s.S file separato). Il problema è armasm da Visual Studio 9 non mi posso compilarlo, producendo un sacco di errori. La mia domanda è, quale braccio di montaggio compilatore è adatto a tale codice?    


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

...

Grazie per tutto l'aiuto

È stato utile?

Soluzione

Questa è la sintassi utilizzata dal GNU assembler . Il codice stesso dovrebbe essere (più o meno) la stessa per qualsiasi assemblatore; per rendere questa build con il Microsoft assembler, i principali cambiamenti saranno:

  • Cambia i caratteri @ (che denotano commenti) per ;
  • Cambia le direttive (le parole che iniziano con .) documentata qui ai loro equivalenti di Microsoft, documentato qui . Per esempio .text diventa CODE.

Questo dovrebbe risolvere la maggior parte degli errori.

Altri suggerimenti

Usa ARM RVDS compilatore
Sintassi di un codice di esempio va in questo modo

      AREA     ARMex, CODE, READONLY
      ENTRY
START
      MOV R0,#1
      MOV R1,#2
      ADD R0,R0,R1
      END

Salva il codice come test.s
comando per compilare e generare file oggetto è

armasm --arm test -o test.s
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top