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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda sobre e
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre e  (Leído 3,809 veces)
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Duda sobre e
« en: 8 Noviembre 2009, 21:43 pm »

Amigos tengo una duda existencial, me gustaria saber como poner dos cadenas de texto en consola, se como se hace con una, que seria algo asi:
Código
  1. section .text
  2.    global _start ;must be declared for linker (ld)
  3.  
  4. _start: ;tell linker entry point
  5.  
  6. mov edx,len ;message length
  7. mov ecx,msg ;message to write
  8. mov ebx,1 ;file descriptor (stdout)
  9. mov eax,4 ;system call number (sys_write)
  10. int 0x80 ;call kernel
  11.  
  12. mov eax,1 ;system call number (sys_exit)
  13. int 0x80 ;call kernel
  14.  
  15. section .data
  16.  
  17. msg db 'Hello, world!',0xa ;our dear string
  18. len equ $ - msg ;length of our dear string
Como podria poner 2?
Saludos


En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #1 en: 8 Noviembre 2009, 21:46 pm »

No se si te entendi bien , pero podrias poner :
Código
  1. msg db 'Hello, world!',10,13,"Nueva cadena en otra linea",10
  2.  

Eso te escribiria en una segunda linea la segunda cadena


En línea



Yo le enseñe a Kayser a usar objetos en ASM
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #2 en: 8 Noviembre 2009, 21:59 pm »

No se si te entendi bien , pero podrias poner :
Código
  1. msg db 'Hello, world!',10,13,"Nueva cadena en otra linea",10
  2.  

Eso te escribiria en una segunda linea la segunda cadena
Y esos numeros? 10,13, cadena2,10?
que son?
Y como se podria hacer en dos definiciones distintas?

Saludos
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #3 en: 8 Noviembre 2009, 22:04 pm »

El 13,10 vendria a ser comop el "\n" de C o de PHP :P Hacen un salto de linea


La verdad tambien podria ser
Código
  1. msg db 'Hello, world!',13,10
  2. msg2 db   "Nueva cadena en otra linea",13,10
  3. len equ $ - msg


PD : Me equivoque en el primer post es 13,10 no 10,13
« Última modificación: 8 Noviembre 2009, 22:07 pm por YST » En línea



Yo le enseñe a Kayser a usar objetos en ASM
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #4 en: 8 Noviembre 2009, 22:09 pm »

El 13,10 vendria a ser comop el "\n" de C o de PHP :P Hacen un salto de linea


La verdad tambien podria ser
Código
  1. msg db 'Hello, world!',13,10
  2. msg2 db   "Nueva cadena en otra linea",13,10
  3. len equ $ - msg


PD : Me equivoque en el primer post es 13,10 no 10,13
Bien gracias, y para que serviria el len   equ   $ - msg?
Y no habria que añadir en la parte de arriva del codigo alguna referencia al nuevo mensaje?

Saludos
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #5 en: 8 Noviembre 2009, 22:41 pm »

Lo que hace
Código
  1. len   equ   $ - msg
  2.  
es hacer que "len" tenga la cantidad de bytes desde msg hasta la posicion donde esta escritor el len equ $-msg , se entiende ?
 
No es necesario poner el msg2 ya que en len esta incluido ( ya que esta entre msg y len ) y tu lo que haces al escribir
Código
  1. mov edx,len ;message length
  2. mov ecx,msg ;message to write

Es decirle que escriba len bytes que estan luego desde la posición msg :P
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #6 en: 8 Noviembre 2009, 23:34 pm »

Si queres hacerlo por separado mira el codigo original: sys_write es la clave (en las 5 primeras lineas se hace la escritura). Lo que queres hacer es llamar a la funcion write para que escriba en la consola otra vez.
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
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #7 en: 9 Noviembre 2009, 21:59 pm »

Si queres hacerlo por separado mira el codigo original: sys_write es la clave (en las 5 primeras lineas se hace la escritura). Lo que queres hacer es llamar a la funcion write para que escriba en la consola otra vez.
Gracias por vuestra ayuda!

Saludos
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Duda sobre e
« Respuesta #8 en: 9 Noviembre 2009, 22:03 pm »

De nadas  ::)
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines