28/03/2010, 14:36
|
| | Fecha de Ingreso: marzo-2010
Mensajes: 31
Antigüedad: 14 años, 8 meses Puntos: 0 | |
Respuesta: Asm El asm es un lenguaje especial. Diferente como cualquier otro lenguaje de otros. C no es igual que java. Y ensamblador no es igual que C. Se necesita otro compilador distinto. A los compiladores de ensamblador se les llama ensambladores (assemblers), cada máquina tiene los suyos. Tu supongo que tendrás un pc, o sea un x86, hay varios ensambladores, tienes el fasm, nasm, masm, tasm, gas, hla. Suelen incorporar mas cosas como macros y acceso a librerías e incluso algunas conveniencias de alto nivel. Para mezclarlo con otro lenguaje compilado, como C, busca por inline assembly(se dice que el ensamblador es metido inline), por ejemplo si usas el de gnu, busca gcc inline assembly. Usa otro formato de instruccion, el AT&T, el más normal y cómodo es el formato intel(para mí al menos), el gas es AT&T(de hecho es el que usa gcc) los otros intel, aunque cambia algo entre ellos. Creo que usabas linux, pues puedes usar el nasm. Busca tutoriales de ensamblador para linux, pero los programas que hagas no serán portables entre sistemas operativos distintos. Si quieres usar ensamblador portable, usa los inlines de los lenguajes, y haz las llamadas al SO a través de las interfaces de alto nivel. En pascal es muy facil meter inline assembly asi como en c, tienes un compilador llamado freepascal.
La otra forma de mezclar es por modulos, haces tus modulos asm, y tus modulos en otro lenguaje compilado a máquina, los linkas con ld por ejemplo, pero esto no recuerdo muy bien, tienes que exportar nombres.
Lo más fácil? nasm en linux, fasm, masm o tasm en windows, inline visual c en windows tambien es facil y pascal inline tambien en ambos, gcc inline es lo mas feo para mi, odio ese maldito formato.
Si quieres algo para aprender de cero como funciona una máquina, buscate un simulador grafico con su propio ensamblador, o incluso, asm 16-bits en ms-dos, pero no te valdrá para nada. Tambien hay algun so hecho en asm por completo, educativo, pero si no sabes te costará, creo que era menuetos. Instálatelo en una maquina virtual y experimenta!
Suerte! |