Autor Tema: [SOLVED] asm en C en xC8  (Leído 1947 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xxopiumxx

  • PIC12
  • **
  • Mensajes: 82
[SOLVED] asm en C en xC8
« en: 28 de Octubre de 2014, 12:10:01 »
que tal muchachos.

estoy trabajando con PIC18f2550 en MPLABX con XC8

preciso hacer esto:
Código: [Seleccionar]
_asm
MOVF numero_1, W
MULWF numero_2
_endasm
pero no hay forma,  no  compila.

intente con
Código: [Seleccionar]
#asm
..
#endasm
y el unico que funciona es el (horrible):

Código: [Seleccionar]
asm("..");
asm("..");

pero este ultimo no me reconoce las variables como definidas (ahí no sé si no estoy teniendo yo un error de concepto por definir las variables en C y esperar el mismo tratamiento en ASM).

alguna idea?

Citar
EDIT
con respecto a las variables acabo de probar esto que se supone funciona:

Código: [Seleccionar]
   asm("MOVF funcion@numero1, W");
    asm("MULWF funcion@numero2");

y.. nada

Citar
SOLVED

bien, estoy medio atonito porque no encontre la explicación al error, pero ahora anda :S

Código: [Seleccionar]
void test_process{
...
    volatile unsigned char a;
    volatile unsigned char b;

    a = separable_byte.LB;
    b=10;

    asm("MOVF test_process@a , W");
    asm("MULWF test_process@b");
}

nota de color: por si alguno no lo sabía, la instrucción MULWF permite multiplicar dos enteros de 8 bits sin signo en una sola operación... digamos que para
el caso en donde estemos muy ajustados de tiempo, es el santo grial!

saludos!
« Última modificación: 28 de Octubre de 2014, 12:50:25 por xxopiumxx »