Pregunta

Estoy usando libmpeg2 para mostrar imágenes de vídeo en mi proyecto de Pocket PC. Última versión de esta lib tiene aceleración para el procesador ARM, algunas de las funciones se vuelven a escribir en el brazo de montaje (en motion_comp_arm_s.S de archivos independientes). El problema es armasm desde Visual Studio 9 no puedo compilarlo, produciendo una gran cantidad de errores. Mi pregunta es, qué brazo de montaje compilador es adecuado para tal código?    


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

...

Gracias por cualquier ayuda

¿Fue útil?

Solución

Esa es la sintaxis utilizada por el GNU ensamblador . El código en sí mismo debe ser (más o menos) la misma para cualquier ensamblador; para hacer esta construcción con el ensamblador de Microsoft, los principales cambios serán los siguientes:

  • Cambiar los caracteres @ (que denotan los comentarios) para ;
  • Cambiar las directivas (las palabras que comienzan con .) documentado aquí a sus equivalentes de Microsoft, documentado aquí . Por ejemplo .text convierte CODE.

Esto debería solucionar la mayor parte de los errores.

Otros consejos

El uso de ARM RVDS compilador
Sintaxis de un código de ejemplo es la siguiente

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

Guardar el código como test.s
comando para compilar y generar el archivo objeto es

armasm --arm test -o test.s
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top