La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4633 - COMO LIGAR EN PROGRAMAS .
Autor:  marco antonio Lopez Manzano
La pregunta es la siguiente:

Quisiera saber la forma de como ligar ensamblador con borland C, visual basic, Visual C++ Y Visual Fox Pro.
Otras interrupciones a parte del int 10h y int 21H, o en caso que no nos puedan decir la forma de ligar envien unas paguinas principales.sobre los temas.

  Respuesta:  Oscar L
Aqui hay un ejemplo compilado con BC++ y TASM:

Codigo en C++:
#include <stdio.h>

extern "C" int suma(int a, int b); //indica que se encuentra en un archivo .obj aparte.

void main() {
int x = suma (25,15);
printf ("Suma de 15+25=%d ",x);
getchar();
}

codigo en ensamblador:
public _suma
.model small
.code

_suma proc near
push bp
mov bp,sp
mov ax, [bp+4] ;25
mov bx, [bp+6] ;15
add ax,bx
pop bp
ret
_suma endp

end

Notas:
-se declara _suma ya q C++ por default añade un "_" a todas las funciones.
-C++ espera el valor de retorno en AX.
-los archivos deben tener diferente nombre para que el compilador genere dos archivos .obj diferentes; de lo contrario se sobreescribira uno y el linker no podra unirlos en el .exe

  Respuesta:  Juan Pablo Giraldo Rendon
A través del programa de tlink se dejan unir todos los obj que sean necesarios.
Además c y sus versiones compilan assembler asi :
asm {
codigo en assembler
}

En el libro de assembler de peter norton existen al final un grupo de elementos para conectar objetos.