Yo también lo he probado y tenía el mismo problema. Lo que he hecho es
compilar el hex2bin a partir de las fuentes (con el compilador de C++
del Visual Studio), y he conseguido una versión que no necesita el
cygwin ese.
Esa versión no funciona. Yo al menos hago el hex2bin con la versión compilada
en Visual
C y aunque aparentemente funciona, no te genera un archivo bin correcto, puesto
que no
hay manera de hacer que vaya en el emulador.
Lo que pasa es que tengo otro problema: los programas que hago funcionan
siempre que no haya constantes de cadena. Es decir, un simple
print("hola") lo jode todo. Por alguna razón, cuando hay cadenas el
enlazador se hace la picha virtual un lío y no genera bien las llamadas
a las funciones. Es decir, donde debería haber "call _print" lo que hay
en realidad es un salto a la zona de datos o alguna aberración parecida.
El .asm generado está correcto, pero creo que eso te pasa por el hex2bin.exe
que has
generado con el visual C. Yo he estado haciendo pruebas, y con el que funciona
bajo
cygwin de coña, con el del visual C nada de nada. Por favor, pruébalo y dime
algo.
Creo que es el mismo problema que impide que funcione la inicialización
de variables globales. Molaría saber qué es lo que hace que.
Por cierto que he hecho un crt0.s que permite hacer funciones main del
tipo "int main(argv** args, int argc)". Si sus interesa, bla bla...
Me interesa. 8)
David.