Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: xv0 en 22 Marzo 2014, 21:21 pm



Título: [Aporte] Strlen XMM
Publicado por: xv0 en 22 Marzo 2014, 21:21 pm
Bueno aqui les dejo una implementacion de una strlen en XMM, en teoria tendria que ser muchisimo mas rapida que la strlen normal, pero no esta testeada.

Código
  1. i.section .text
  2. .globl _start
  3.  
  4. _start:
  5.  
  6. pushq %r8
  7. pushq %r9
  8. pushq %r12
  9. movq %r8, %r9
  10.  
  11. pxor %xmm1, %xmm1
  12.  
  13. _x0:
  14.  
  15. movdqu (%r8), %xmm0
  16. pcmpeqb %xmm0, %xmm1
  17. pmovmskb %xmm1, %r12d
  18. addq $16, %r8
  19. andl $0xffffffff, %r12d
  20. jz _x0
  21.  
  22. bsf %r12d, %r12d
  23. subq $16, %r8
  24. subq %r9, %r8
  25. addl %r12d, %r8d
  26.  
  27. popq %r12
  28. popq %r9
  29. popq %r8

Si tienen una CPU de 32 bits solamente cambien los registros, el puntero a la cadena es %r8.

Un saludo.