elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
20 Julio 2008, 09:16  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Hendriҳ, E0N)
| | |-+  Salto línea en asm
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Salto línea en asm  (Leído 196 veces)
skapunky
Electronik
Colaborador

Desconectado Desconectado

Mensajes: 1.026


www.killtrojan.es


Ver Perfil WWW
Salto línea en asm
« en: 13 Mayo 2008, 13:47 »

Haber, tengo un problemilla, seguro que es de facil solución pero no lo consigo, se trata de un programa en ensamblador compilado con fasm.

En el programa, salen dos frases, declaradas mediante la directiva db y llamadas desde la INT 10h con un lodsb para ir cargando caracter a caracter y me va perfecto, lo que pasa es que me salen las dos frases seguidas  :huh:.

La questión es que no se hacer el salto de línea en asm, alguien sabe? Gracias de antemano.
En línea

Mi Blog: Entra aquí

Descarga analizador malware killtrojan : aquí
Eternal Idol

Desconectado Desconectado

Mensajes: 1.235


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: Salto línea en asm
« Respuesta #1 en: 13 Mayo 2008, 13:59 »

Tenes que usar CrLf. Lo que en C\C++ es \r\n son dos bytes cuyos valores son 13 y 10 (0Dh y 0Ah).
En línea

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
dark_hat

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Salto línea en asm
« Respuesta #2 en: 13 Mayo 2008, 19:54 »

Supongo que si usas la INT 10h es xq estas haciendo un bootloader. Para hacer un salto de línea no hay ningún carácter que lo haga con la INT 10h, lo que debes hacer es hallar la fíla donde está el cursor, y luego cambiar a la fila siguiente y columna 0.

http://www.ueb.edu.ec/asm/archivos/ASSEMBIOS.pdf
En línea

Eso que huele es un poco de incienso,
eso marrón una tableta de turrón...
Eternal Idol

Desconectado Desconectado

Mensajes: 1.235


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: Salto línea en asm
« Respuesta #3 en: 13 Mayo 2008, 20:15 »

Tal como el lo esta haciendo con teletype output funciona perfectamente lo que comente:

sk_INFO    db 'Sistema operativo SkaOs, Albert Lopez Buil (c)',13,10, 'Segunda linea', 0
En línea

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
dark_hat

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: Salto línea en asm
« Respuesta #4 en: 13 Mayo 2008, 20:19 »

Yo esq prové eso y me saltaba de línea con el carácter de salto pero no se me ponía en el principio de la línea, vamos que si estaba el cursor en fila 2 columna 14 y imprimía el salto de línea se me ponía en fila 3 columna 14, en lugar de columna 0, tal vez dependa eso del hardware.
En línea

Eso que huele es un poco de incienso,
eso marrón una tableta de turrón...
Eternal Idol

Desconectado Desconectado

Mensajes: 1.235


Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)


Ver Perfil WWW
Re: Salto línea en asm
« Respuesta #5 en: 13 Mayo 2008, 20:22 »

Puede ser que no funcione en determinados casos pero yo acabo de probar el codigo de skapunky modificado como comente en VirtualPC y funciona perfectamente. Deberia hacerlo segun la logica:

Desc: Display a character on the screen, advancing the cursor and scrolling the screen as necessary.
En línea

"La economia nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de este"
Juan Domingo Peron
skapunky
Electronik
Colaborador

Desconectado Desconectado

Mensajes: 1.026


www.killtrojan.es


Ver Perfil WWW
Re: Salto línea en asm
« Respuesta #6 en: 13 Mayo 2008, 20:41 »

Citar
Supongo que si usas la INT 10h es xq estas haciendo un bootloader. Para hacer un salto de línea no hay ningún carácter que lo haga con la INT 10h, lo que debes hacer es hallar la fíla donde está el cursor, y luego cambiar a la fila siguiente y columna 0.

Lo pensé jejej lo que me tenia de ir a la universidad y no e podido acabar de comprobarlo...manejando el acumulador..

De hecho el bootloader ya esta acabado, eso lo queria de cara al kernel y ya por saberlo...ya que seguro que en un momento o otro lo tenia de utilizar...Entonces creo que probare cambiando la fila... aunque creo que eso se hace si AH = 09h de la int10, sinó funciona así ya probare las otras alternativas.
En línea

Mi Blog: Entra aquí

Descarga analizador malware killtrojan : aquí
Páginas: [1] Ir Arriba Imprimir 
Ir a:  








Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC