elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  ASM 32Bits (Consola?)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ASM 32Bits (Consola?)  (Leído 8,181 veces)
S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
ASM 32Bits (Consola?)
« en: 30 Abril 2011, 00:51 am »

De nuevo yo con mis inquietudes...

Es posible (Usando FASM), programar una aplicación de Consola?
Se puede usar interrupciones en FASM? Digamos, (Seguramente hablo guasadas para ustedes que la tienen mas clara que yo), puedo en vez de programar para 32bits usando APIS, usar en modo 16bits usando interrupciones o demás?


Y otro tema, (que hize en otro TH).
En ASM de 16bits, para crear un archivo tengo que hacer lo siguiente:

Poner 3C en AX
Poner en DS:DX el sector que contiene la cadena en ASCII de la ruta del archivo
Poner en CX los atributos del archivo
INT 21
Ahora bien, haciéndolo dede debug da:

Citar
-a100
jmp 125

-e 102 'RutaArchivo' 0a 0d '$'
-a125
MOV DX,0102
MOV CX,00
MOV AX,3C
INT 21H
INT 20H

Bueno, genero el .com y todo, y cuando lo ejecuto, no me crea el archivo. Estuve leyendo, y puede ser que tenga que ver con "modo protegido vs modo real"?

Ténganme paciencia, estoy dando los primeros pasos.

También, quiero que borren mi otro TH, ya que planteo una duda parecida acá. El TH es "Dudas asm 16bits".

Disculpen mi infinita ignorancia respecto a esto, y de antemano, mil gracias por la ayuda.


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: ASM 32Bits (Consola?)
« Respuesta #1 en: 30 Abril 2011, 02:36 am »

Respecto a si es posible hacer una aplicacion de consola en FASM,si se puede,claro :)

y por lo de la creacion del archivo no lo se,alguiene aqui te giara mucho mejor que yo,ademas no uso ya interrupciones el DOS,y el debug de Windows lo uso poco po no decir NADA,pero en FAMS o cualquie otro ensamblador deberias pasar la direccion del arcvhios al registro de segmento DS mediante AX,y operar con la funcion del DOS,debes de buscar un poco mas en google...hay mucha inf de esto.


en MASM seria asin:

Crear archivo
Código
  1. ; Crear un archivo en ASM
  2.  
  3. .model small
  4. .stack 100h
  5. .data
  6.  
  7. nombre db "c:\tasm\bin\bogota.txt",00h ;especificar directorio del archivo
  8. maneja dw ?
  9. .code
  10. algo proc near
  11. mov ax,@data
  12. mov ds,ax
  13. mov ah,3ch
  14. mov cx,00
  15. lea dx,nombre
  16. int 21h
  17. jc salir
  18. mov maneja,ax
  19. salir: mov ax,4c00h
  20. int 21h
  21. endp
  22. end algo
  23.  


Escribir:
Código
  1. .model small
  2. .stack 100h
  3. .data
  4. nombre db "c:\tasm\bin\bogota.txt",00h
  5. texto db "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  6. maneja dw ?
  7. .code
  8. algo proc near
  9. mov ax,@data
  10. mov ds,ax
  11. mov ah,3ch
  12. mov cx,00
  13. lea dx,nombre
  14. int 21h
  15. jc salir
  16. mov maneja,ax
  17. mov cx,500
  18. nuevo: push cx
  19. mov ah,40h
  20. mov bx,maneja
  21. mov cx,25
  22. lea dx,texto
  23. int 21h
  24. pop cx
  25. loop nuevo
  26. mov ah,3eh
  27. mov bx,maneja
  28. int 21h
  29. salir: mov ax,4c00h
  30. int 21h
  31. endp
  32. end algo
  33.  


siento no poder ayudarte



En línea

S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: ASM 32Bits (Consola?)
« Respuesta #2 en: 30 Abril 2011, 18:59 pm »

Creo que entonces tengo que intentar entender lo de DS/CS, etc, porque realmente, no entiendo la funcionalidad, y estoy leyendo pero seguramente ya lo voy a entender. No entiendo realmente qué es. (Entiendo, pero mal por lo visto). Ahora examino bien bien los códigos.
Yo busqué mucho en google, pero es que realmente la idea de los registros de segmento que tengo soy muy "vagas". Se que en DS se guardan los datos, (O eso entendí yo), pero no sé como guardarlos ahí, no sé exactamente como funciona todo, digamos, es algo bastante estúpido, pero ahora voy a ojear ambos códigos y voy a seguir intentando.

Muchas gracias..
Y si alguien puede darme una manita con lo del debug o lo que fuere lo agradecería ETERNAMENTE.

« Última modificación: 30 Abril 2011, 19:02 pm por S3kh » En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: ASM 32Bits (Consola?)
« Respuesta #3 en: 3 Mayo 2011, 20:17 pm »

Nose si entendi bien la pregunta,si la pregunta es si se puede hacer una app de 32 bits de tipo consola no creo que se pueda....lo de DS/CS son registros de segmento.y en 32 bits no estan,es mas comodo.



saludos
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: ASM 32Bits (Consola?)
« Respuesta #4 en: 4 Mayo 2011, 07:11 am »

si se puede en 32bits.
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ASM 32Bits (Consola?)
« Respuesta #5 en: 4 Mayo 2011, 09:09 am »

Los libros no muerden, lean un poco, un poco nada mas y encontraran las respuestas.
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
fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: ASM 32Bits (Consola?)
« Respuesta #6 en: 4 Mayo 2011, 20:34 pm »

format PE Console

Lo unico que para entrada y salida de datos tendras que usar API, no puedes usar interrupciones.

salu2!
En línea

Un byte a la izquierda.
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: ASM 32Bits (Consola?)
« Respuesta #7 en: 19 Junio 2011, 00:19 am »

Hasta puedes usar la C runtime si quieres.

Código:
format PE Console
entry start  

include "%fasminc%\win32a.inc"
include "%fasminc%\macro\if.inc"



section ".data" data readable writeable  



szPause db "PAUSE",0


section ".code" code readable executable  
start:  
      
    
        cinvoke printf, szStr, szPause
 
        cinvoke system, szPause
    
        invoke  ExitProcess,0



section ".idata" import data readable writeable  

library kernel32, "kernel32.dll",\  
        user32,"user32.dll",\  
        msvcrt, "msvcrt.dll",\
        libmysql, "libmysql.dll"

include "%fasminc%\api\kernel32.inc"
include "%fasminc%\api\user32.inc"
include "%fasminc%\api\msvcrt.inc"


Si quieres usar la winapi en vez de c runtime
http://msdn.microsoft.com/en-us/library/ms682073(v=vs.85).aspx

BOOL WINAPI WriteConsole(
  __in        HANDLE hConsoleOutput,
  __in        const VOID *lpBuffer,
  __in        DWORD nNumberOfCharsToWrite,
  __out       LPDWORD lpNumberOfCharsWritten,
  __reserved  LPVOID lpReserved
);

solo que si usas la winapi, tienes que inicializar antes la consola.
« Última modificación: 19 Junio 2011, 00:21 am por _Enko » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Libro ASM Español (32bits)
ASM
aress 7 8,672 Último mensaje 6 Enero 2010, 10:03 am
por Eternal Idol
[APORTE] Usando consola con Threads (aka: consola estilo quake) :D
.NET (C#, VB.NET, ASP)
raul338 0 3,908 Último mensaje 6 Marzo 2010, 17:27 pm
por raul338
Duda con CRC32 + 32bits + INT() de Databases
Programación General
Skeletron 6 4,872 Último mensaje 21 Mayo 2010, 06:21 am
por Skeletron
como pasar de 32bits a 64bits ??? « 1 2 »
Hardware
x64core 12 14,037 Último mensaje 13 Octubre 2011, 19:34 pm
por simorg
Backtrack R2 ¿32bits o 64 bits?
GNU/Linux
OLM 3 5,006 Último mensaje 18 Marzo 2012, 01:29 am
por portaro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines