Pregunta: | 13784 - INVOCAR INSTRUCCIONES ASSEMBLER DESDE C!! |
Autor: | Johnny Alberto Gómez Pérez |
estamos usando la función de c "asm " pero, el programa no corre y muestra errores , necesito saber como tengo que invocar las instrucciones assembler desde C, si es posible enviar un pequeño codigo como ejemplo.
gracias!!!!! |
Respuesta: | paco pérez |
Es curioso lo diferentes que son las llamadas a ensamblador con Borland Pascal y Borland C. Por ésto hay que tener especial cuidado con algunas cosas. Por ejemplo, las etiquetas (para los saltos, etc) deberán en C estar fuera de la instrucción asm. Asimismo, el corchete de apertura deberá estar en la misma línea de la instrucción asm. También hay que considerar que podemos confundir al compilador C si utilizamos como indicador hexadecimal la "h". Hay que usar siempre 0x.
Por cierto, Borland admite asm como palabra clave. Otros fabricantes sólo admitirán _asm ó __asm. Aparte, aunque generalmente no es obligatorio, conviene, al contrario que con el ensamblador de verdad, terminar cada instrucción con un punto y coma y no emplearlo como símbolo de comentario del ensamblador. EJEMPLOS: NO VALE: asm { mov al, 12h ; Suma 12h a al cmp al, 0 jnz otro ; Si no es 0, salta a otro xor al, al otro: pop ax push ax } SÍ VALE: asm { mov al, 0x12; /* Suma 0x12 a al */ cmp al, 0 jnz otro /* Si no es 0 salta a otro */ xor al, al } otro: asm pop ax; asm push ax; |
Respuesta: | Nohé Ramón Cázarez Castro |
Yo lo hago con funciones, escribo la función en ensamblador, despues la declaro en C como si fuera una función normal, la invoco y listo.
Recuerda que las variables que declaras en C, en ensamblador deben estar presedidas por un "_". Felices desarrollos!!! |