Últimos temas
¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado Ninguno
El record de usuarios en línea fue de 49 durante 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 |
Mensaje privado al admin
Hibridacion entre C y ensamblador
2 participantes
Página 1 de 1.
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í
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 : 34
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.
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 : 34
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
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|
Dom Sep 27, 2015 6:16 pm por Cristianita
» Hola Mundo
Mar Mar 05, 2013 8:03 pm por Cristianita
» Baja Usuario
Miér Jun 20, 2012 11:19 am por yorebelde
» Las groserias fuertes de tu pais
Miér Jun 20, 2012 5:30 am por daviz2111
» Glee: The Music, Seasons 1 & 2 (En 320 kbps!!!) (Duets Actualizado en 320 kbps completo!!!)
Lun Abr 23, 2012 5:43 am por yorebelde
» Motivos diagonales para Photoshop
Miér Mar 21, 2012 7:35 pm por Gearchile14
» ¿Que cover te gusta mas?
Dom Oct 09, 2011 4:11 pm por Misha.Star.Malfoy.Cullen
» Expresa tu humor...
Dom Oct 09, 2011 3:58 pm por Misha.Star.Malfoy.Cullen
» holaa!! u.u
Dom Oct 09, 2011 3:50 pm por Misha.Star.Malfoy.Cullen
» The Antique Shop
Dom Oct 09, 2011 3:47 pm por Misha.Star.Malfoy.Cullen