Autor
|
Tema: fasm consola (Leído 15,122 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
Moderador
Desconectado
Mensajes: 5.969
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 Console entry 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 automaticamente http://bitshare.com/files/bwvzbp1q/MSVCRT.INC.htmlcolocas 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
Moderador
Desconectado
Mensajes: 5.969
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 console entry 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
Moderador
Desconectado
Mensajes: 5.969
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 nada creo 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
|
5,698
|
31 Mayo 2009, 07:06 am
por YST
|
|
|
Sintaxis FASM
« 1 2 »
ASM
|
ferk93
|
16
|
11,370
|
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,100
|
6 Marzo 2010, 17:27 pm
por raul338
|
|
|
PRoblema en fasm intentando usar consola
ASM
|
fary
|
3
|
4,334
|
1 Agosto 2010, 21:41 pm
por Eternal Idol
|
|