Programación General > ASM (Ensamblador)
Pasos Para Pasar De Com A Exe
Eternal Idol:
--- Cita de: "JuanK" --- Saludos, ahi voy de nuevo, porque no me funciona este codigo?
es decir la version com de es codigo funcionaba, pero al copnvertirlo a exe ya no me funciona.. porque?
--- Fin de la cita ---
Entre las modificaciones que hice estaba la de devolver el control a MS-DOS que no esta en tu ultimo codigo y si la agregaras funcionaria perfectamente:
--- Código: Text --- mov ah, 4chint 21h
JuanK:
:blink: pOR SUPUESTO!
y que hace puntualmente ese llamado a la interrupcion, es decir que quiere decir devolverle el control al DOS? porque el archivo COM no lo necesita?'
Eternal Idol:
--- Cita de: "JuanK" ---y que hace puntualmente ese llamado a la interrupcion, es decir que quiere decir devolverle el control al DOS? porque el archivo COM no lo necesita?
--- Fin de la cita ---
Para empezar yo asumi que ese codigo funcionaba como COM pero no es cierto. ¿Lo ensamblaste y lo probaste? Es imposible que funcione por la simple razon de que sus primeros bytes no son opcodes sino los bytes que corresponden a la cadena prueba ...
Asi si funcionaria como COM:
--- Código: Text --- bits =16org 100hstart:cldmov si, cadcall imprimirretimprimir:mov ah,0ehcaracter:lodsbcmp al,0jz fincharint 10hjmp caracterfinchar:retcad db "prueba",0
En cuanto a la necesidad de avisar al sistema:
http://www.ctyme.com/intr/rb-2974.htm
Cuando haces el ret en un COM salta al codigo que hay en el cs:0, cabe recordar que nuestro ejecutable empieza en cs:100h, dentro de esa posicion hay un int 20h que es la forma antigua de devolver el control al sistema: http://www.ctyme.com/intr/rb-2471.htm en el EXE al hacer ret solo conseguis saltar al principio del codigo y hacer un bucle infinito.
JuanK:
respecto a lo del com si me funciono pero es que este es el que yo tengo como version COM:
--- Código: Text --- bits =16org 0100hstart:cldmov si, cadcall imprimirretimprimir:mov ah,0ehcaracter:lodsbcmp al,0jz fincharint 10hjmp caracterfinchar:retcad db "prueba",0
No sabia lo del 20H.
Bien gracias!.
Eternal Idol:
--- Cita de: "JuanK" --- respecto a lo del com si me funciono pero es que este es el que yo tengo como version COM
--- Fin de la cita ---
Bueno, es es igual al ultimo que te pase y la diferencia radica en la posicion del mensaje.
Navegación
[*] Página Anterior
Ir a la versión completa