PREGUNTAS CONCRETAS SOBRE ENSAMBLADOR LINUX/IA-32/GAS/BINUTILS

Iniciado por ADMIRATION, 23 Enero 2014, 14:21 PM

0 Miembros y 7 Visitantes están viendo este tema.

cpu2

Tendrias que escribir el codigo en un editor de texto, luego guardarlo con la extension .S "AT&T", y luego ensamblarlo y linkearlo con as y ld como te dije.

Ese codigo no lee la frase, llama a la funcion exit, practicamente no hace nada, simplemente salir del programa.

Un saludo.

ADMIRATION

Gracias cpu2, asi lo hare. ¿que le faltaría al código para que pudiera imprimir o salir esa frase?
Otra cosa que no entiendo: Si según tengo entendido, Gas tiene la sintaxis AT&T y Intel es sintaxis de Nasm, ¿como he podido encontrar un curso que utiliza Gas con plataforma IA-32?
Gracias de nuevo.
No muerdas la mano de quien te cuida, te mima y te da de comer. ¡¡NO LO MERECE!!

cpu2

Código (asm) [Seleccionar]
.section .data

message: .ascii "esta es una linea de texto"
         .byte 0x0d,0x0a
         .ascii "y esta es otra"
         .byte 0x0

.section .text
.globl _start

_start:
                                            ; write
incl %ebx
movl $message, %ecx
movb $42, %dl
movb $4, %al
int $0x80
                                            ; exit
movb $0x1, %al
xorl %ebx, %ebx        ; puedes poner el valor que quieras
int $0x80


La otra pregunta sera mejor que la reformules, estas preguntando de que Gas funciona con x86?

Si es asi, la sintaxis no tiene nada que ver, para el procesador sera el mismo opcode, es igual Gas o Nasm.

Un saludo.

ADMIRATION

Gracias cpu2. Voy aclarandome con el codigo.
La otra pregunta a la que me refiero es asi tal cual. Y la prueba la tienes aqui, en la direccion siguiente: www.ciens.ucv.ve.8080/.../Tema_3.ppt PROGRAMACION EN ENSAMBLADOR.
Para una persona que empieza completamente desde cero como yo, antes de entrar en materia, ha de empezar por ubicarse(que es mejor para su S.O y sus bits, que ramas hay dentro de esa materia y cual es la que debo elegir, que herramientas utiliza esa rama de esa materia en particular, un curso o tutorial que te facilite la didactica a tu nivel en esa materia....etc etc etc) y tu alomejor ya no te acordaras de tus inicios, pero te aseguro que ese intento de ubicarse es en ocasiones harto compleja y que te provocan muchas dudas.
En esta web encontre mi ubicacion, eso creo. Pero como no, lo que te he comentado:
si Nasm es a Intel y Gas es a AT&T, o yo sigo confuso, o en este curso de esa web hay un error o....LO QUE PIENSO ES QUE GAS Y BINUTILS 2.10 SOPORTEN SINTAXIS INTEL. ¡¡NECESITO ESTAR SEGURO DE MI CORRECTO APRENDIZAJE!!
Dime tu lo que opinas desde tu experiencia.
Gracias cpu2. Y un fuerte saludo
No muerdas la mano de quien te cuida, te mima y te da de comer. ¡¡NO LO MERECE!!

cpu2

#14
Vamos a ver, creo que le estas dando inportancia a chorradas, como puede ser la sintaxis.

Gas en un ensamblador como Nasm, Gas si soporta la sintaxis de intel, como me preguntaras el como, pues coloca lo siguiente antes de declarar la section text, intel_syntax noprefix

Bien ahora ya podras ensamblar con Gas en la sintaxis de intel, pero el opcode es el mismo, el aprendizaje es mismo, que la sintaxis de intel sea mas conocida no significa ni mucho menos que esta sea mejor, solo es otra forma de anotacion, estas perdiendo el tiempo en chorradas.

Las rama la escojes tu, ASM solo es un lenjuage, criptografia, malware, software general etc...

Lo unico que necesitas es un ensamblador y un linker, poner ese Ubuntu a 64 bits para exprimir el procesador al maximo, y empezar en serio, como leer el tomo numero uno de intel.

Un saludo.

P.D: No lei ese archivo ya que es un powerpoint, no leo ese tipo de cosas, pero al ser un trabajo ya me imagino lo que seria.

ADMIRATION

Me has aclarado muchas dudas "chorras", como bien has dicho jejeje.
Lo hare tal como dices. Es lo que tiene la incertidumbre cuando te interesa mucho un tema y quieres hacerlo bien y a la vez es completamente desconocido, como es el caso del lenguaje ensamblador. Le das importancia a todo. A demasiado
Gracias por ayudarme a ubicarme y sentirme mas seguro.
Saludos y mi mas sincero respeto.
No muerdas la mano de quien te cuida, te mima y te da de comer. ¡¡NO LO MERECE!!

cpu2

Me parece perfecto que des importancia a todo, si todo el mundo fuera asi seria todo perfecto, pero no en esto.

Código (asm) [Seleccionar]
movl %ebx, %eax
mov eax, ebx


Dale la importancia en como diseñar el algoritmo. no en la anotacion de el mismo.

Un saludo.

ADMIRATION

Otra cosa que no sabia y que es necesario tener por la mano, es saber manejar la tabla ASCII por el tema de la manipulacion de datos en hexadecimales, mucho mas comodo.
Seria otro punto a tener en cuenta para las personas que se han lanzado en este lenguaje desde cero como yo. HAY QUE SABER COMO FUNCIONA LOS BINARIOS Y TABLA ASCII PARA LA MANIPULACION DE DATOS PARA EL LENGUAJE ENSAMBLADOR.
Si estoy equivocado corregirme por favor.
Gracias
No muerdas la mano de quien te cuida, te mima y te da de comer. ¡¡NO LO MERECE!!

cpu2

Tan facil como hacer un man ascii, y verla traducida. Pero no vendria mal aprenderte el formato hexadecimal.

Se usa practicamente para los offets y tablas para manipular bits, o almenos es lo que ago yo. 0xffff, 65535, 11111111 11111111, para depende de lo que agas te sera mejor uno u otro. Como puedes observar el hexadecimal es mas corto, para trabajar con numeros grandes seria mejor hex.

Un saludo

ADMIRATION

Hola cpu2. Si, eso es otra cosa que me ha quedado clara, con los hexadecimales se trabaja mucho mas facil.
Aunque las expresiones de "hacer un man ascii", "offets", como manipular bits, etc todavia las desconozco, pero poco a poco.
Ahora estoy con el vol.1 de Intel, y no se me hace nada pesada, aunque hay partes o expresiones que no comprendo.
Si no te importa, cpu2, podria dejar reflejadas aqui mis dudas de la guia vol1 de Intel a medida que me vayan surgiendo y contestandolas asi podemos ayudar a la gente que como yo parta de cero en este lenguaje tan apasionante pero complejo a la vez.
Que supongo que quien parta de cero le asaltaran el mismo tipo de dudas.
ES INTERESANTE Y AYUDA A TENER IMPRESA O DIBUJADA EN GRANDE LA TABLA ASCII EN TU ESCRITORIO(para los que empiezan a introducirse), ya que se le da mucha utilidad.
Gracias por tu apoyo cpu2.
No muerdas la mano de quien te cuida, te mima y te da de comer. ¡¡NO LO MERECE!!