Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- section .data
- ayuda db 'Ayuda!',10 ; 10 fin de linea
- largo equ $ - ayuda ; $ offset actual
- section .text
- global _start ; comienzo del programa
- _start:
- pop eax ; eax contiene a argc
- ; argc es la cantidad de parametros de la consola
- cmp eax, 2; controlamos si fueron ingresados dos parametros
- je controlayuda ; si es asi, salta a controlayuda
- mov eax, 1; sys_exit
- mov ebx, 1; error
- int 80h ; invocacion servicio SO
- controlayuda:
- pop ecx ; descargamos argv[0], el nombre del programa
- pop ecx ; conservamos argv[1], el puntero al primer argumento
- mov edx, [ecx] ; buscamos el primer caracter de argv[1]
- cmp edx, 45 ; comparamos '-' con el primer caracter de argv[1]
- je imprimirayuda ; si son iguales, salta a la subrutina imprimirayuda
- mov eax, 1; sys_exit
- mov ebx, 2; error
- int 80h ; invocacion servicio SO
- imprimirayuda:
- mov eax, 4 ; sys_write
- mov ebx, 1 ; standard output
- mov ecx, ayuda ; offset de mensaje
- mov edx, largo ; largo del mensaje
- int 80h ; invocacion al servicio
- mov eax, 1; sys_exit
- mov ebx, 0; error
- int 80h ; invocacion servicio SO
Add Comment
Please, Sign In to add comment