Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: El_Java en 1 Noviembre 2011, 13:25 pm



Título: Error de novato!
Publicado por: El_Java en 1 Noviembre 2011, 13:25 pm
Hola, he decidido introducirme en el mundo del ensamblador, y acabo de empezar, he intentado hacer un código sencillo para ver como salía, pero no consigo que me funcione. Estoy programando en ensamblador para linux y estoy usando para compilarlo y linkarlo, nasm y ld:
Lo que quiero hacer exactamente es crear un archivo llamado 'prueba.txt' y en el escribir lo que haya puesto en el argv[1] en la terminal, pero me da un error ("prueba.asm:2: error: comma expected after operand 1") en la creación del array.
Hechadle un ojo a ver si veis el fallo:
Código
  1. section .data
  2. txt db 10 dup(?),10
  3.  
  4. section .text
  5. global _start
  6. _start:
  7. pop eax;
  8. pop eax;
  9. pop txt;
  10.  
  11. mov eax,8
  12. mov ebx,'prueba.txt'
  13. mov ecx,00644Q
  14. int 80h
  15.  
  16. test eax,eax
  17. js skipWrite
  18.  
  19. call fileWrite
  20.  
  21. mov eax,1
  22. xor ebx,ebx
  23. int 80h
  24.  
  25. skipWrite:
  26. mov ebx,eax
  27. mov eax, 1
  28. int 80h
  29.  
  30. fileWrite:
  31. mov ebx,eax
  32. mov eax,4
  33.  
  34. mov ecx,txt
  35. mov edx,80
  36. int 80h
  37.  
  38. mov eax,6
  39. int 80h
  40. ret
  41.  

Un saludo!


Título: Re: Error de novato!
Publicado por: Queta en 1 Noviembre 2011, 15:02 pm
dup solamente existe para MASM/TASM. En NASM hay más instrucciones como times, resb, resw o resd.