Autor
|
Tema: Duda sobre e (Leído 3,809 veces)
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
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: section .text global _start ;must be declared for linker (ld) _start: ;tell linker entry point mov edx,len ;message length mov ecx,msg ;message to write mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db 'Hello, world!',0xa ;our dear string len equ $ - msg ;length of our dear string
Como podria poner 2? Saludos
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
No se si te entendi bien , pero podrias poner : msg db 'Hello, world!',10,13,"Nueva cadena en otra linea",10
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
Mensajes: 2.021
Actualizate o muere!
|
No se si te entendi bien , pero podrias poner : msg db 'Hello, world!',10,13,"Nueva cadena en otra linea",10
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
Mensajes: 965
I'm you
|
El 13,10 vendria a ser comop el "\n" de C o de PHP Hacen un salto de linea La verdad tambien podria ser msg db 'Hello, world!',13,10 msg2 db "Nueva cadena en otra linea",13,10 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
Mensajes: 2.021
Actualizate o muere!
|
El 13,10 vendria a ser comop el "\n" de C o de PHP Hacen un salto de linea La verdad tambien podria ser msg db 'Hello, world!',13,10 msg2 db "Nueva cadena en otra linea",13,10 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
Mensajes: 965
I'm you
|
Lo que hace len equ $ - msg
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 mov edx,len ;message length mov ecx,msg ;message to write
Es decirle que escriba len bytes que estan luego desde la posición msg
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.935
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 2.021
Actualizate o muere!
|
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
Mensajes: 5.935
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
|
|
|
|
|