Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. VAR_MAX_ARGV equ 4;
  2.  
  3. sys_exit equ 1
  4. sys_read equ 3
  5. sys_write equ 4
  6. stdin equ 0
  7. stdout equ 1
  8. stderr equ 3
  9.  
  10.  
  11. SECTION .data ;initialized data
  12. szErrMsg db "Too many arguments. The max number of args is 4", 10
  13. ERRLEN equ $-szErrMsg
  14. szLineFeed db 10
  15.  
  16.  
  17. SECTION .text ;assembly code
  18. extern printf
  19.  
  20. global _start
  21. _start:
  22. nop ;
  23. push ebp
  24. mov ebp, esp
  25.  
  26. ;push welcome_msg;
  27. ;call printf
  28.  
  29. cmp dword [ebp + 4], 1
  30. je NoArgs
  31.  
  32. cmp dword [ebp + 4], VAR_MAX_ARGV ; check total args entered
  33. ja TooManyArgs
  34.  
  35. ; push DWORD [i] DWORD directiva de tamanio de memoria
  36. jmp finish
  37.  
  38.  
  39. NoArgs:
  40. ; No args entered,
  41. ; start program without args here
  42. jmp finish
  43.  
  44.  
  45. TooManyArgs:
  46. mov eax, sys_write
  47. mov ebx, stdout
  48. mov ecx, szErrMsg
  49. mov edx, ERRLEN
  50. int 80H
  51.  
  52. finish:
  53. mov esp, ebp
  54. pop ebp
  55.  
  56. mov eax, sys_exit
  57. xor ebx, ebx
  58. int 80H
  59.  
  60. SECTION .bss ;unitialized data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement