Ensamblador - C-ensamblador

 
Vista:

C-ensamblador

Publicado por Túrin (1 intervención) el 23/02/2001 13:05:54
Necesito saber cómo implementar ensamblador enmedio del código C. De momento sé que necesito el Turbo Assembler. Y sé que tengo que escribir:

asm{
*/código en ensamblador*/
}

pero como puedo utilizar las variables de una función?
Por ejemplo: tengo un programa que suma dos enteros:

#include<stdio.h>

int sumar(int n1, int n2, int *n3);

void main(void){
int numero1, numero2, numero3, suma;
scanf("%d", &numero1);
scanf("%d", &numero2);
scanf("%d", &numero3);
suma=sumar(numero1, numero2, &numero3);
printf("%d+%d+%d=%d" numero1, numero2, numero3, suma);
}
int sumar(int n1, int n2, int *n3)
{
int i;
for(i=0;i<3;i++){
*n3=*n3*2;
}
return n1+n2+*n3;
}

pero yo quiero lo que hay dentro de la función sumar:

int i;
for(i=0;i<3;i++){
*n3=*n3*2;
}
return n1+n2+*n3;

en ensamblador dentro de la funcion con las mismas entradas i todo. Como lo hago. O sea, como utilizo las variables n1, n2, *n3 en ensamblador? Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Muchas formas...

Publicado por Jorge (126 intervenciones) el 28/02/2001 14:59:18
Hola,
Te cuento que práctica en insertar ASM en C no tengo, pero sé unas cositas:

Los parámetros los pasa en la pila, a menos que en la configuración de optimización tengas puesto que use los registros cada vez que pueda.

Sea cual fuere la forma, te conviene hacer un debug del programa y ver el segmento de pila para darte cuenta si los pasa por la pila o por registro. Si usas el Turbo C, C++ o similares (el entorno), seguro tenes una opción para eso.

Bueno, espero que esto te sirva, cualquier cosa volvé a preguntar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar