| 
	
		|  Autor | Tema: fasm consola  (Leído 16,038 veces) |  
	| 
			| 
					
						| bengy 
								 
								
								 Desconectado 
								Mensajes: 501
								
								 
								mis virtudes y defectos son inseparables
								
								
								
								
								
								     | 
 
es posible trabajar por consola en FASM  ??? 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
Si, claro. En Windows se usan las funciones de la API GetstdHandle con STD_OUTPUT_HANDLE y WriteFile. 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.Juan Domingo Perón
 |  |  |  | 
			| 
					
						| _Enko | 
 
Hola, yo prefiero usar la runtime de C para  la consola, se hace asi: format PE  Consoleentry start
 
 include '%fasminc%/win32ax.inc'
 
 section ".data" data readable writeable
 szMsg db 'Hola',0
 frmt db '%s',0
 szPause db 'PAUSE',0
 
 
 
 section ".code" code readable writeable executable
 start:
 
 cinvoke  printf, szMsg, frmt
 cinvoke  system, szPause
 invoke   ExitProcess,0
 
 section ".idata" import data readable writeable
 
 library kernel32,'kernel32.dll',\
 user32,'user32.dll',\
 msvcrt,'msvcrt.dll'
 
 include '%fasminc%\api\kernel32.inc'
 include '%fasminc%\api\user32.inc'
 include '%fasminc%\api\msvcrt.inc'
 
msvcrt.inc no viene con fasm, pero lo puedes agregar manualmente a los includes. Con la ventaja de tener toda la libreria de c standard a mano; En el caso de la consola, obtiene el HANDLE automaticamentehttp://bitshare.com/files/bwvzbp1q/MSVCRT.INC.html colocas el archivo en INCLUDE/API Saludos. |  
						| 
								|  |  
								| « Última modificación: 30 Mayo 2014, 16:23 pm por _Enko » |  En línea | 
 
 |  |  |  | 
			| 
					
						| bengy 
								 
								
								 Desconectado 
								Mensajes: 501
								
								 
								mis virtudes y defectos son inseparables
								
								
								
								
								
								     | 
 
gracias por responder...
 tienen algun ejemplo de como mostrar por consola los resultados de un procedimiento???
 
 es decir que mi procedimiento devuelve varios resultados en un bucle, mi duda es como mostrar todos esos resultados
 
 
 gracias a todos......
 |  
						| 
								|  |  
								| « Última modificación: 31 Mayo 2014, 06:09 am por DeviiAC » |  En línea | 
 
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
Podes usar printf perfectamente, busca su referencia en Google si nunca programaste en C/C++. |  
						| 
								|  |  
								|  |  En línea | 
 
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.Juan Domingo Perón
 |  |  |  | 
			| 
					
						| bengy 
								 
								
								 Desconectado 
								Mensajes: 501
								
								 
								mis virtudes y defectos son inseparables
								
								
								
								
								
								     | 
 
pretendo mostrar dx pero no funciona pueden revisar mi codigo? se lo agradeceria mucho... format PE consoleentry start
 include 'win32w.inc'
 
 ;======================================
 section '.data' data readable writeable
 ;======================================
 
 Msg1  DB 'Introduzca el nombre:',0
 Msg2  DB 'Total:$'
 Msg3  DB 'Error',0dh,0ah
 Avanza DB 0Dh,0Ah, '$'
 BufEnt DB '*.*',0
 DB ?
 ASCIIZ DB '*.*',0
 
 DTASeg DW ?
 
 ;=======================================
 section '.code' code readable executable
 ;=======================================
 
 start:
 
 proc Entrada
 
 cld
 mov ax,@DATA
 mov ds,ax
 mov [DTASeg],es
 mov es,ax
 mov es,ax
 
 mov ah,4eh
 mov cx,17h
 mov dx,offset ASCIIZ
 int 21h
 jc Final
 
 
 Bucle:
 
 mov es,[DTASeg]
 mov di,80h+30
 
 mov cx,13
 xor al,al
 repne scasb
 dec di
 mov al,'$'
 stosb
 
 push ds
 
 mov ah,9
 mov ds,[DTASeg]
 mov dx,80h+30
 ccall   [printf],dx ; pretendo mostrar dx----------------------------------------
 int 21h
 pop ds
 
 mov ah,9
 mov dx,OFFSET Avanza
 
 int 21h
 
 mov ah,4Fh
 int 21h
 jc Final
 
 jmp Bucle
 
 Final:
 
 cmp ax,12h
 jne error
 
 mov ah,9
 mov dx,OFFSET Msg2
 int 21h
 
 
 
 Error:
 mov ah,9
 mov dx,OFFSET Msg3
 int 21h
 
 mov ax,4c01h
 int 21h
 
 endp
 ;====================================
 section '.idata' import data readable
 ;====================================
 
 
 library kernel,'kernel32.dll',\
 msvcrt,'msvcrt.dll' ,\user32,'user32.dll'
 
 import user32,MessageBoxA,'MessageBoxA'
 
 import  kernel,\
 ExitProcess,'ExitProcess'
 
 import  msvcrt,\
 printf,'printf',\
 getchar,'_fgetchar'
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
¿int 21h?     Estas mezclando codigo de 16 bits para MS-DOS en un programa de 32 bits para Windows que te dejo _Enko ... |  
						| 
								|  |  
								|  |  En línea | 
 
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.Juan Domingo Perón
 |  |  |  | 
			| 
					
						| bengy 
								 
								
								 Desconectado 
								Mensajes: 501
								
								 
								mis virtudes y defectos son inseparables
								
								
								
								
								
								     | 
 
ouch es que aprendi assembler para 16 bits 
 como mostrar dx para 32 bits por consola???
 |  
						| 
								|  |  
								| « Última modificación:  2 Junio 2014, 03:56 am por DeviiAC » |  En línea | 
 
 |  |  |  | 
			| 
					
						| _Enko | 
 
Hola, como te había comentado EternalIdol, http://www.cplusplus.com/reference/cstdio/printf/ cinvoke printf, szFORMATO, edx
 
 donde szFormato podría ser:
 szFORMATO db "Este es el valor de DX: %i",0
 
 
 
 
recuerda que como es 32 bit, es dificil que pases como parametro DX solo, tienes que pasar el registro EDX completo. Para que no haya problemas, recuerda hacer  XOR EDX, EDX al inicio, asi no tienes problemas con el bit alto. y Si modificas solamente DX, EDX tendrá el mismo valor. i% significa que vas a pasar como parametro un nro entero, un INT. printf va reemplazar %i con el valor del siguiente parametro. Si usas por ejemplo "%i, %i"  tendrás que pasar como parametro 2 enteros. Seria algo como   ccall   [printf],szFORMATO, edx
szFORMATO es "%i",0 Puedes programar en fasm en 16bit tambien. PE console  una aplicación con consola de 32 bit. No exiten interrupciones alli. En Fasm puedes programar en 16bit tambien, si mal no recuerdo era format MZ, asi obtienes una aplicacion para DOS (que es  consola)  Saludos. |  
						| 
								|  |  
								| « Última modificación:  2 Junio 2014, 16:27 pm por _Enko » |  En línea | 
 
 |  |  |  | 
			| 
					
						| bengy 
								 
								
								 Desconectado 
								Mensajes: 501
								
								 
								mis virtudes y defectos son inseparables
								
								
								
								
								
								     | 
 
ya intente de varias formas y nadacreo que el problema es que no entra al procedimiento
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Duda Fasm ASM
 | SLUGER | 7 | 6,019 |  31 Mayo 2009, 07:06 am por YST
 |  
						|   |   | Sintaxis FASM 
							« 1 2 » ASM
 | ferk93 | 16 | 11,925 |  9 Julio 2009, 09:57 am por Erik#
 |  
						|   |   | [APORTE] Usando consola con Threads (aka: consola estilo quake) :D .NET (C#, VB.NET, ASP)
 | raul338 | 0 | 4,374 |  6 Marzo 2010, 17:27 pm por raul338
 |  
						|   |   | PRoblema en fasm intentando usar consola ASM
 | fary | 3 | 4,562 |  1 Agosto 2010, 21:41 pm por Eternal Idol
 |    |