Autor
|
Tema: ASM 32Bits (Consola?) (Leído 8,658 veces)
|
S3kh
Desconectado
Mensajes: 58
|
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: -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
Mensajes: 851
BCN CITY
|
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 ; Crear un archivo en ASM .model small .stack 100h .data nombre db "c:\tasm\bin\bogota.txt",00h ;especificar directorio del archivo maneja dw ? .code algo proc near mov ax,@data mov ds,ax mov ah,3ch mov cx,00 lea dx,nombre int 21h jc salir mov maneja,ax salir: mov ax,4c00h int 21h endp end algo
Escribir: .model small .stack 100h .data nombre db "c:\tasm\bin\bogota.txt",00h texto db "ABCDEFGHIJKLMNOPQRSTUVWXYZ" maneja dw ? .code algo proc near mov ax,@data mov ds,ax mov ah,3ch mov cx,00 lea dx,nombre int 21h jc salir mov maneja,ax mov cx,500 nuevo: push cx mov ah,40h mov bx,maneja mov cx,25 lea dx,texto int 21h pop cx loop nuevo mov ah,3eh mov bx,maneja int 21h salir: mov ax,4c00h int 21h endp end algo
siento no poder ayudarte
|
|
|
En línea
|
|
|
|
S3kh
Desconectado
Mensajes: 58
|
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
Mensajes: 851
BCN CITY
|
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
Mensajes: 563
|
si se puede en 32bits.
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
|
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
|
Hasta puedes usar la C runtime si quieres. 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Libro ASM Español (32bits)
ASM
|
aress
|
7
|
9,038
|
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
|
4,100
|
6 Marzo 2010, 17:27 pm
por raul338
|
|
|
Duda con CRC32 + 32bits + INT() de Databases
Programación General
|
Skeletron
|
6
|
5,280
|
21 Mayo 2010, 06:21 am
por Skeletron
|
|
|
como pasar de 32bits a 64bits ???
« 1 2 »
Hardware
|
x64core
|
12
|
14,912
|
13 Octubre 2011, 19:34 pm
por simorg
|
|
|
Backtrack R2 ¿32bits o 64 bits?
GNU/Linux
|
OLM
|
3
|
5,278
|
18 Marzo 2012, 01:29 am
por portaro
|
|