Guest User

Untitled

a guest
Apr 14th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. section .data
  2. ayuda db 'Ayuda!',10 ; 10 fin de linea
  3. largo equ $ - ayuda ; $ offset actual
  4.  
  5. section .text
  6.  
  7. global _start ; comienzo del programa
  8.  
  9. _start:
  10. pop eax ; eax contiene a argc
  11.     ; argc es la cantidad de parametros de la consola
  12. cmp eax, 2; controlamos si fueron ingresados dos parametros
  13. je controlayuda ; si es asi, salta a controlayuda
  14.  
  15. mov eax, 1; sys_exit
  16. mov ebx, 1; error
  17. int 80h ; invocacion servicio SO
  18.  
  19. controlayuda:
  20. pop ecx ; descargamos argv[0], el nombre del programa
  21. pop ecx ; conservamos argv[1], el puntero al primer argumento
  22. mov edx, [ecx] ; buscamos el primer caracter de argv[1]
  23. cmp edx, 45 ; comparamos '-' con el primer caracter de argv[1]
  24. je imprimirayuda ; si son iguales, salta a la subrutina imprimirayuda
  25. mov eax, 1; sys_exit
  26. mov ebx, 2; error
  27. int 80h ; invocacion servicio SO
  28.  
  29. imprimirayuda:
  30. mov eax, 4 ; sys_write
  31. mov ebx, 1 ; standard output
  32. mov ecx, ayuda ; offset de mensaje
  33. mov edx, largo ; largo del mensaje
  34. int 80h ; invocacion al servicio
  35. mov eax, 1; sys_exit
  36. mov ebx, 0; error
  37. int 80h ; invocacion servicio SO
Add Comment
Please, Sign In to add comment