Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: roller0 en 16 Noviembre 2010, 17:57 pm



Título: Duda de asm y c
Publicado por: roller0 en 16 Noviembre 2010, 17:57 pm
muy buenas tardes

la verdad, tengo un problema con un peque;o kernel que estoy haciendo....

tengo el codigo en asm para que arranque desde un disquete y ejecute un par de comandos sencillos, ahora la duda que tengo es>

he visto que se puede meter codigo asm en un proyecto c, pero,,,,

es posible meter codigo c en un proyecto asm?

si es posible, de que forma?

P.D. no son mis deberes de la universidad, por si alguno piensa en ello, para empezar, no estudio ninguna carrera


Título: Re: Duda de asm y c
Publicado por: Eternal Idol en 16 Noviembre 2010, 18:39 pm
Codigo sin compilar (lo que vendria ser el equivalente del inline assembly) segurisimo que no, codigo objeto tal vez podrias si las herramientas que usas lo soportan y no hace uso de ningun servicio del sistema (es decir si escribis en pantalla, trabajas con archivos, etc. olvidate), es de 16 bits (como asumo tu otro codigo en ASM).

¿Que queres hacer exactamente con ese codigo en C? No te va a ayudar a evitar escribir codigo para interactuar con el hardware ...


Título: Re: Duda de asm y c
Publicado por: roller0 en 17 Noviembre 2010, 13:38 pm
hombre, se que no me va a evitar nada si tengo que controlar el hardware, pero es... a ver como te digo

el codigo en asm seria como un loader que ejecuta partes del codigo en c que seria como un pekeño kernel con su shell


Título: Re: Duda de asm y c
Publicado por: Eternal Idol en 17 Noviembre 2010, 14:04 pm
Podes generar un binario .COM (es decir un ejecutable compuesto pura y exclusivamente por codigo, sin ninguna cabecera) partiendo del codigo en C, escribirlo en ciertos sectores y despues desde el loader cargar esos sectores en memoria y saltar al principio del ejecutable.


Título: Re: Duda de asm y c
Publicado por: roller0 en 17 Noviembre 2010, 20:52 pm
gracias, creo haberlo entendido

si tengo algun problemilla te sigo comentando


Título: Re: Duda de asm y c
Publicado por: Yurix en 21 Diciembre 2010, 20:28 pm

Lo otro que puedes hacer es escribir una funcion en C y decirle al compilador que te genere el codigo en un .asm , todos lo hacen, copias el codigo (talves tienes que hacerle unos arreglos debido a las calling convention C , pascall , fastcall ...)
http://en.wikipedia.org/wiki/X86_calling_conventions

, pero eso tambien lo puedes modificar en los argumentos que le pasas al compilador del codigo C. Por ejemplo ,los compiladores de intel aceptan que le cambies las calling conventions. Asi de facil. cualquier duda me dices.

Espero que mis humildes conocimientos te ayuden.

Saludos