SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: Mondi en Jueves 10 de Diciembre de 2009, 22:08

Título: CMD se cierra solo al finalizar la ejecucion
Publicado por: Mondi en Jueves 10 de Diciembre de 2009, 22:08
Bueno, eso q dice el titulo, ejecuto un codigo en macro assembler, visual c++ express edition, y al final tengo un call DumpRegs, para ver los registros, y los muestra pero se cierra inmediatamente y no los puedo visualizar, alguien podria ayudarme?

Gracias.
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Eternal Idol en Jueves 10 de Diciembre de 2009, 22:14
¿Estas ejecutando desde Inicio>>Ejecutar>>Cmd?  Siempre podes poner un getchar (GetStdHandle con STD_OUTPUT_HANDLE y ReadFile).
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Mondi en Jueves 10 de Diciembre de 2009, 22:22
TITLE Add and Subtract              (16-bit.asm)

; This program adds and subtracts 32-bit integers.
; Last update: 06/01/2006

INCLUDE Irvine16.inc

.code
main PROC
   mov   ax,@data
   mov   ds,ax

   mov   eax,10000h      ; EAX = 10000h
   add   eax,40000h      ; EAX = 50000h
   sub   eax,20000h      ; EAX = 30000h
   call   DumpRegs

   exit
main ENDP
END main

este es el programa de prueba de la libreria Irvine, de 16 bits, entonces hago el build, dps run, y al correrlo, se abre el cmd, veo unas lineas rapidas, y luego se cierra rapidamente.

gracias.
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Eternal Idol en Jueves 10 de Diciembre de 2009, 22:27
¿Y eso como lo ensamblas con "visual c++ express edition"? ¿Trae un ml de hace unos 15 años? Si lo ejecutas tal y como te dije no se cierra la ventana ... Inicio>>Ejecutar>>cmd.
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Mondi en Jueves 10 de Diciembre de 2009, 22:29
si pero yo estoy ejecutando el codigo desde macro assembler, con las librerias de kip irvine.

y no puedo poner getchar en ensamblador...
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Eternal Idol en Jueves 10 de Diciembre de 2009, 22:43
¿Sabes usar la consola de Windows o no?

Inicio>>Ejecutar>>cmd
X:
CDDIRDIRDIR
PROGRAMA
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Mondi en Jueves 10 de Diciembre de 2009, 22:48
cuando pongo c:Irvineexamplesch03prueba.asm q es donde tengo el archivo q quiero ejecutar, se abre el macro assembler xD
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Eternal Idol en Jueves 10 de Diciembre de 2009, 22:51
Ese es el codigo fuente ... tenes que ensamblarlo ... te generara un ejecutable ...
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Mondi en Jueves 10 de Diciembre de 2009, 23:01
ok gracias, ahora si, pero igual me gustaria q al correrlo desde visual c++ se haga la pausa al final, se agradece mucho la atencion.

una pregunta, sabes de assembler? quisiera saber como guardar en un archivo los registros en forma decimal, en vez de hexa.

Gracias.

EI: juntando mensajes.

ahora si q no se q pasa, hago modificaciones a mi programa y SIEMPRE me da lo mismo, la misma ejecucion

y si lo compile de nuevo.

EI: juntando mensajes.

aqui ta la solucion a mi problema

En el menu de Herramientas / Herramientas Externas seleccionas el comando Run 16-bit ASM. Al seleccionarlo notaras que en la parte de abajo de la pantalla hay un "checkbox" que dice "Cerrar al terminar". Muy probablemente lo tienes seleccionado. Hay que des-seleccionar esa opcion y ya con eso no se cierra la pantalla al terminar la ejecucion.
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: Eternal Idol en Jueves 10 de Diciembre de 2009, 23:12
Si queres usar eso lee: http://kipirvine.com/asm/gettingStarted/index.htm (http://kipirvine.com/asm/gettingStarted/index.htm" onclick="window.open(this.href);return false;)

ml es el ensamblador, siempre podes usarlo desde linea de comandos para ensamblar, sino lee arriba para integrarlo.

PD. Decimal y hexadecimal son unicamente una representacion, guarda el numero como entero (4 bytes).
Título: Re: CMD se cierra solo al finalizar la ejecucion
Publicado por: davedg en Lunes 1 de Marzo de 2010, 17:19
solo tienes k agregar call WaitMsg para k no se cierre entonces tu codigo kedaria asi:



TITLE Add and Subtract (16-bit.asm)

; This program adds and subtracts 32-bit integers.
; Last update: 06/01/2006

INCLUDE Irvine16.inc

.code
main PROC
mov ax,@data
mov ds,ax

mov eax,10000h ; EAX = 10000h
add eax,40000h ; EAX = 50000h
sub eax,20000h ; EAX = 30000h
call DumpRegs
call WaitMsg

exit
main ENDP
END main