Gracias Eternal Idol, y como pongo ese mismo codigo, pero k sea para 32 bits? Eske yo lo cogi de un manual, q decia k era para archivos .exe, y crei k todos los exe eran para 32 bits. Pues bien, necesito este mismo programa, pero q sea para 32 bits, ayuda xfa !!No, los EXEs pueden ser de 16, 32 o 64 bits. ¿Que queres hacer exactamente? ¿Un programa para Windows?
Saludos.
Si, lo q keria hacer es un programa para Windows, un exe, de 32 bits.El Sistema Operativo necesita un tipo de ejecutable en particular (ELF, PE, etc) y exporta una API determinada. No podes hacer un ejecutable portable entre S.O.s de 32 bits ya que no podes acceder a la BIOS y sus servicios son diferentes.
Pero una cosa, si lo quisiera para unix, el codigo asm seria el mismo, porque solo depende del cpu, lo q variaria serian las instrucciones antes del codigo no??
Pues ya te digo, lo q queria hacer de momento es un programa, con este codigo , q sea de 32 bits para Windows. Este programa me funciona, pero no es de 32 bits, q es lo q quiero, y lo mejor. Si intento poner los registros extended con la "e", no lo reconoce el tasm, q tengo q hacer??
1. Mire el programa, me se me parecio mucho a un compilador de C o C++. COn sus librerias. headers y demas. Pero digo una cosa, para q necesito todas esas birerias y prototipos de funciones si estoy programando en ensamblador? Por ej, lo que me dijiste en el post anterior de WriteFile y GetStdHandle, q son, funciones, la 1 para escribir un archivo? Esque no parece ensamblador, xq en ensamblador segun tenia entendido, para escribir en un archivo tenias q invocar un rutina de SO, poniendo el num de puntero de la IDT en dx, (sino recuerdo mal) y posteriormente llamar a la interrupcion 21...
2. Yo lo unico que queria es hacer un programa, con el codigo q puse arriba, para win de 32 bits, tengo q cambiar algo del code q puse? como lo compilo y linkeo con el masm32?
En vez de salirme los caracteres ascii k me salian volcando el contenido de la mem con el dump... se supone k en esas direcciones de memoria tiene k aver los caracteres ascii, no instrucciones de asm como cmp, y eso , no????
1. ok, entonces, pongo en el code por ej esto WriteFile, para llamar a la subrutina almacenada en una dll, k son las apis, y esa subrutina hace una interrupcion, no es asi? ( en ese caso me pareceria trabajar a un nivel superior...)
Y k son las llamadas rapidas sysenter/syscall, son otra forma diferente a las interrupciones, o k??
2. Sabes de algun manual, o algun ejemplo de codigo, para Windows? Eske todos los mauales k encuentro en google me hablan de interrupciones y demas..
3. Perdona pero no te entendi. Mira, corrijeme si estoy ekivocado. Bueno en primer lugar me gustaria hacerte una pregunta. Cual es la diferencia entre cargar un programa en memoria y ejecutarlo?
Pues bien, a partir de esto, lo q no entiendo, es, q como si tu vuelcas el contenido de esos offsets (con el programa cargado en memoria), no te te aparecen las instrucciones ASM de tu programa, sino otros simbolos q no tienen nada q ver, es decir, no las instrucciones transformadas a hexadecimal del codigo ASM, q es lo q deberia salir.