
Últimos temas

¿Quién está en línea?
En total hay 2 usuarios en línea: 0 Registrados, 0 Ocultos y 2 Invitados Ninguno
La mayor cantidad de usuarios en línea fue 49 el Mar Sep 21, 2010 8:13 pm.

Mejores posteadores
MяHousєLιgнт |
| |||
kchito2 |
| |||
Misha.Star.Malfoy.Cullen |
| |||
m00nlight |
| |||
Charlene |
| |||
ainer |
| |||
Rachel |
| |||
D_Gabe |
| |||
JimeBella |
| |||
xokolatiitho |
|

Contador total
Expresa tu intelecto... fue creado el Martes 15 Jun 2010 a las 04:55 PM, tiene 2871 días activo, 338 usuarios registrados, 310 temas creados, 7724 comentarios y 55 foros.
Ultimo usuario registrado: rolando24

Mensaje privado al admin
Hibridacion entre C y ensamblador
Página 1 de 1. • Comparte •
Hibridacion entre C y ensamblador
Unos de los programas o mas bien problemas que anualmente nos proponen en la carrera de ingeniería en sistemas es como combinar dos lenguajes de programación diferentes en uno solo, comúnmente esto lo hacemos en lenguaje ensamblador con lenguaje C, por eso he decido colocar un mini tuto que muestre como es esto posible.
primero que nada tenemos que tener dos códigos fuentes, uno de C y uno de ensamblador. en este caso el programa ya completo imprimirá en pantalla una lista de los primero 1000 primeros números primos, ya que el tuto trata de como hibridar solo explicare detalles importantes de los códigos fuentes.
Codigo en lenguaje C
como dije antes solo esplicare las partes importantes:
02: se declara una metodo de tipo entera de origen externo, quiere decir que no esta dentro de mismo código
07: se manda a llamar al procedimiento externo
ese código se guarda con nombre nprimo y con la extensión .cpp
Código en lenguaje ensamblador
03: Se declara el procedimiento publico que sera usado por C
04: Inicio del procedimiento
23: Fin del procedimiento
ese código se guarda con nombre nprimo y con la extensión .asm
ya que tenemos lo códigos creados y guardados tenemos que compilar de esta forma:
compilamos el codigo ASM desde la liena de comandos del MS-DOS con:
esto nos creara un archivo .obj el cual ahora tenemos que copiar y pegar en la carpeta de C y dejándolo en el mismo lugar de donde esta el código de C, ya seguros que el archivos .obj y cpp estan en la misma carpeta compilamos una vez mas ahora de esta forma
el resultado en pantalla posiblemente marque dos errores pero no interrumpen el funcionamiento del programa, después de la compilación el resultado sera un ejecutable llamado nprimo.exe
y eso es todo, ya saben para dudas y comentarios pueden dejarlos aquí
primero que nada tenemos que tener dos códigos fuentes, uno de C y uno de ensamblador. en este caso el programa ya completo imprimirá en pantalla una lista de los primero 1000 primeros números primos, ya que el tuto trata de como hibridar solo explicare detalles importantes de los códigos fuentes.
#include
extern int primo(int n);
main(){
int i,n;
n=1000;
for (i=2;i<=n;i++)
if (primo(i))
printf("%d ",i);
return 0;
}
como dije antes solo esplicare las partes importantes:
02: se declara una metodo de tipo entera de origen externo, quiere decir que no esta dentro de mismo código
07: se manda a llamar al procedimiento externo
ese código se guarda con nombre nprimo y con la extensión .cpp
.MODEL SMALL
.CODE
PUBLIC _primo
_primo PROC NEAR
PUSH BP
MOV BP, SP
MOV SI, [BP+4]
MOV BX, 2
BUCLE: XOR DX, DX
MOV AX, SI
CMP AX, BX
JE PRIMO
DIV BX
OR DX, DX
JZ NOPRIMO
INC BX
JMP BUCLE
PRIMO: MOV AX, 1
JMP FIN ;
NOPRIMO:XOR AX, AX
FIN: POP BP
RET
_primo ENDP
END
03: Se declara el procedimiento publico que sera usado por C
04: Inicio del procedimiento
23: Fin del procedimiento
ese código se guarda con nombre nprimo y con la extensión .asm
ya que tenemos lo códigos creados y guardados tenemos que compilar de esta forma:
compilamos el codigo ASM desde la liena de comandos del MS-DOS con:
masm nprimo.asm
esto nos creara un archivo .obj el cual ahora tenemos que copiar y pegar en la carpeta de C y dejándolo en el mismo lugar de donde esta el código de C, ya seguros que el archivos .obj y cpp estan en la misma carpeta compilamos una vez mas ahora de esta forma
tcc -E nprimo.cpp nprimo.obj
el resultado en pantalla posiblemente marque dos errores pero no interrumpen el funcionamiento del programa, después de la compilación el resultado sera un ejecutable llamado nprimo.exe
y eso es todo, ya saben para dudas y comentarios pueden dejarlos aquí



✪Dream Send me a sign, Turn back the clock, Give me some time, I need to break out✪
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]
Re: Hibridacion entre C y ensamblador
pregunta!!
y observacion....
no mostrara los primeros 1000 numeros primos.... si no, los numeros primos que desde 2 hasta 1000 y realmente no son 1000.... kreo k son 100....
y la pregunta es.....
qp2 con el codigo en ensamblador.....
xk ya llevare esa materia...xD
y observacion....
no mostrara los primeros 1000 numeros primos.... si no, los numeros primos que desde 2 hasta 1000 y realmente no son 1000.... kreo k son 100....
y la pregunta es.....
qp2 con el codigo en ensamblador.....
xk ya llevare esa materia...xD
xokolatiithoTIESTO-BOY -
Fecha de nacimiento : 03/05/1990
Mensajes : 155
Edad : 27
Localización : En Mi Casa...xD
Re: Hibridacion entre C y ensamblador
haber, mira imprime los 1000 primeros números primos
independientemente desde que numero lo coloque ok?
y por favor que tu pregunta sea mas especifica por que no
se entiende que preguntas.
independientemente desde que numero lo coloque ok?
y por favor que tu pregunta sea mas especifica por que no
se entiende que preguntas.

✪Dream Send me a sign, Turn back the clock, Give me some time, I need to break out✪
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]
Re: Hibridacion entre C y ensamblador
¬¬....
andas en tus dias.... ya me di cuenta...
ya subi los de dragon ball.... pero no se escuchan muy bien...
mañana subo los de house
y los demas
andas en tus dias.... ya me di cuenta...
ya subi los de dragon ball.... pero no se escuchan muy bien...
mañana subo los de house
y los demas
xokolatiithoTIESTO-BOY -
Fecha de nacimiento : 03/05/1990
Mensajes : 155
Edad : 27
Localización : En Mi Casa...xD
Re: Hibridacion entre C y ensamblador
no es eso, es por que te conozco, se como eres
y se que solo te gusta molestar, eres un Trol
si no sabes que es lee las reglas en la sección
de "Conductas inadmisibles" donde también veras
que se te puede bajar la barra de respeto si sigues así
esta es la advertencia numero 1
y se que solo te gusta molestar, eres un Trol
si no sabes que es lee las reglas en la sección
de "Conductas inadmisibles" donde también veras
que se te puede bajar la barra de respeto si sigues así
esta es la advertencia numero 1

✪Dream Send me a sign, Turn back the clock, Give me some time, I need to break out✪
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]
✪And make a new name, Let's open our eyes. To the brand new day ✪
[Tienes que estar registrado y conectado para ver esa imagen]

» Amor entre hermanos Nick y tu (digamos algo hot)
» ¡Sunny Entre Estrellas cambia de nombre oficialmente!
» Better than revenge ~ Entre Nick & Joe
» GALA 02/02/13 ENTRE BASTIDORES –LO QUE YO HE VISTO-
» SIMILITUD ENTRE EL GOBIERNO DE ESPAÑA Y EL DE EEUU
» ¡Sunny Entre Estrellas cambia de nombre oficialmente!
» Better than revenge ~ Entre Nick & Joe
» GALA 02/02/13 ENTRE BASTIDORES –LO QUE YO HE VISTO-
» SIMILITUD ENTRE EL GOBIERNO DE ESPAÑA Y EL DE EEUU
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
» Hola Mundo
» Baja Usuario
» Las groserias fuertes de tu pais
» Glee: The Music, Seasons 1 & 2 (En 320 kbps!!!) (Duets Actualizado en 320 kbps completo!!!)
» Motivos diagonales para Photoshop
» ¿Que cover te gusta mas?
» Expresa tu humor...
» holaa!! u.u
» The Antique Shop