fork(1) download
  1. section .data
  2. minha_string db 'ABZZZZXXXZZHCDEEFGHX', 0 ; String com terminador 0
  3. achou_msg db 'Achou 3 X!', 0xA
  4. achou_len equ $ - achou_msg
  5. contador dd 0
  6. section .text
  7. global _start
  8. _start:
  9. mov esi, minha_string ; ESI aponta para o início da string
  10. procurar:
  11. mov al, [esi] ; pega o byte apontado por ESI e coloca em AL
  12. inc esi
  13. cmp al, 0 ; Chegou ao final da string? (terminador 0)
  14. je nao_achou
  15. cmp al, 'X' ; Comparar caractere atual com 'X'
  16. je achou
  17. jmp procurar ; Continua procurando
  18. achou:
  19. mov dword [contador], 3
  20. dec dword [contador]
  21. cmp dword [contador], 0
  22. je achou3
  23. jmp procurar
  24. nao_achou:
  25. ; se não quiser fazer nada, apenas sair
  26. jmp sair
  27. achou3:
  28. ; escreve mensagem "Achou o X!"
  29. mov eax, 4 ; syscall write
  30. mov ebx, 1 ; STDOUT
  31. mov ecx, achou_msg
  32. mov edx, achou_len
  33. int 0x80
  34. jmp sair
  35. sair:
  36. mov eax, 1 ; syscall exit
  37. xor ebx, ebx
  38. int 0x80
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty