Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Belial & Grimoire en 27 Febrero 2011, 11:30 am



Título: estoy aprendiendo asm y necesito opinion y/o ayuda para mejor mis ejemplos
Publicado por: Belial & Grimoire en 27 Febrero 2011, 11:30 am
hola

alguien me podria decir si hice bien este codigo, estoy empezando a familiarizarme con ASM y como no encuentro tutoriales con ejemplo, trato de hacer todo lo que aprendi con C para hacerlo con ASM

solo que lo estoy haciendo con ejemplos que voy encontrando, ahorita trate de aprender como dos hola mundo en un mismo codigo ya que no sabia lo de borrar eax incluso no se si es necesario.. pero de esta manera lo logre, asi como usa "cmp" , "jmp" y "je"

pero no se si lo hice bien, por lo menos me funciona sin problemas pero no tengo idea de si esta bien escrito, si repeti mucho codigo inecesario... bueno, alguien me podria dar una opinion y una ayuda si ve algo mal o muy repetitivo por porfavor

salu2

Código
  1. BITS 32
  2.  
  3. mensaje db 'Hello World',0x0A
  4. error db 'Error',0x0A
  5. correcto db 'Correcto', 0x0A
  6.  
  7. global _start
  8. _start:
  9.  
  10. starter:
  11.  
  12. mov eax, 0
  13. mov eax, 0x4
  14. mov ebx, 1
  15. mov ecx, mensaje
  16. mov edx, 12
  17. int 0x80
  18.  
  19. mov eax, 0
  20. mov eax, 0x4
  21. mov ebx, 1
  22. mov ecx, mensaje
  23. mov edx, 12
  24. cmp edx, 1
  25. je esca
  26. int 0x80
  27.  
  28. xor eax, eax
  29. mov ecx, correcto
  30. mov edx, 9
  31. cmp edx, 9
  32. je correct
  33.  
  34. mov eax, 0
  35. mov eax, 0x1
  36. mov ebx, 0
  37. int 0x80
  38.  
  39. esca:
  40. mov eax, 0
  41. mov eax, 0x4
  42. mov ebx, 1
  43. mov ecx, error
  44. mov edx, 5
  45. int 0x80
  46.  
  47. mov eax, 0
  48. mov eax, 0x1
  49. mov ebx, 0
  50. int 0x80
  51.  
  52. correct:
  53. mov eax, 0
  54. mov eax, 0x4
  55. mov ebx, 1
  56. mov ecx, correcto
  57. mov edx, 9
  58. int 0x80
  59.  
  60. mov eax, 0
  61. mov eax, 0x1
  62. mov ebx, 0
  63. int 0x80


Título: Re: estoy aprendiendo asm y necesito opinion y/o ayuda para mejor mis ejemplos
Publicado por: Garfield07 en 28 Febrero 2011, 16:27 pm
Tiene algunos detalles que se podrían mejorar [arriba tuyo y abajo correcto]

Código
  1. mov eax, 0
Código
  1. xor eax, eax

Código
  1. mov ebx, 9
Código
  1. mov ebx, 0x9

Hay veces que repites una y otra vez el mismo código. Usa más jmp.
Por lo demás, pocos errores se les puede sacar a un Hello World :P

Un saludo y suerte!
Sagrini