• Viernes 15 de Noviembre de 2024, 12:23

Autor Tema:  Re: Interfaz C - ASM  (Leído 5537 veces)

Samuel Rodríguez

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Interfaz C - ASM
« en: Lunes 25 de Marzo de 2002, 20:14 »
0
Que tal.

En la escuela se me pidió realizar un proyecto, en el cual debo hacer un programa principal para el chasis de una calculadora. Pero sus funciones deben ser hechas en un módulo de ensamblador. La pregunta es, ¿cómo se logra hacer la interfaz?, es decir, ¿cómo hago que el chasis de la calculadora interaccione con las funciones hechas en ASM?.

Mil gracias.:(

bench

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Interfaz C - ASM
« Respuesta #1 en: Miércoles 27 de Marzo de 2002, 01:45 »
0
convenios de llamada del compilador - bench (26-03-02)
Una Funcion Desarrollada en Lenguaje ensamblador Puede Integrarse a Un Programa en C
si es compatible con los convenios de llamada del compilador C, que estes Utilizando:

La Mejor Forma de Saber Cuales son los Convenios de llamada de tu compilador C
es ver Como genera codigo ensamblador el compilador que estas utilizando.

Elaborar Un Programa sencillo:

char a;
char Mi_Funcion(char b);
void main(void)
{
a = Mi_Funcion(2);
}

char Mi_Funcion(b)
{
char c = 1;
return(b+c);
}

Luego Compilala Con la Opcion Para Generar Codigo Ensamblador.

Con el Compilador Microsoft La Siguiente Orden:

cl -Fa prueba.c

Generara un Archivo prueba.asm

Donde Encontraras el codigo ensamblador:

Analiza Los Convenios de llamada de la Funcion "Mi_Funcion" y Modifica si es Necesario
tus Funciones en Assembler Para que Cumplan este Convenio y Luego Pogras Llamarlas desde C
Como a Cualquier otra Funcion.

Beelzebub

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Interfaz C - ASM
« Respuesta #2 en: Martes 11 de Junio de 2002, 09:05 »
0
bueno eso de hacer funciones o procedimiento hechos en asm para despues ser llamados en C, la verdad no es muy complicado, tiene con 6 meses que realice un shell en C en modo grafico, pero los camandos los hice en asm, y en C hice el entorno grafico, asi que tengo algo de experiencia, pero como este mensaje alparecer ya tiene un buen de tiempo pues no se si todavia necesites ayuda, si la necesitas solo mandame un mensaje o postea otra vez lo que pasa que ahorita acave de inscribirme a este foro y bueno tambien tengo que revisar mis notas para cualquier detalle.

lucianoaibar

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
    • http://www.lucianoaibar.com.ar/
Interfaz C - ASM
« Respuesta #3 en: Lunes 17 de Junio de 2002, 01:29 »
0
Cosa de niños....
Ejemplo con MASM y Borland C++ (32 bits)

PRUEBA.ASM

SUMA PROC C PUBLIC  N1:DWORD, N2:DWORD
 mov eax, N1
 add eax, N2
 RET
SUMA ENDP

; devuelve en EAX el valor de 32 bits


PRUEBA.C

extern "C" long int SUMA(int, int);

...
int resultado=SUMA(10,20);

una boludez!
Saludos!
Luciano Aibar - lucianoaibar@hotmail.com