Autor
|
Tema: Duda de asm y c (Leído 4,639 veces)
|
roller0
Desconectado
Mensajes: 9
A LA GRAMENAGÜER!!!!!!!!!!!
|
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
|
|
« Última modificación: 16 Noviembre 2010, 18:11 pm por roller0 »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
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 ...
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
roller0
Desconectado
Mensajes: 9
A LA GRAMENAGÜER!!!!!!!!!!!
|
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
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
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.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
roller0
Desconectado
Mensajes: 9
A LA GRAMENAGÜER!!!!!!!!!!!
|
gracias, creo haberlo entendido
si tengo algun problemilla te sigo comentando
|
|
|
En línea
|
|
|
|
Yurix
Desconectado
Mensajes: 72
Paz para la guerra y guerra por la paz
|
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
|
|
|
En línea
|
|
|
|
|
|