elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [Aporte] Strlen XMM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte] Strlen XMM  (Leído 2,011 veces)
xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
[Aporte] Strlen XMM
« 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.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con strlen [Solucionado]
Programación C/C++
Dark00 9 5,755 Último mensaje 11 Noviembre 2012, 19:17 pm
por Dark00
[FASM]strlen en ASM
ASM
0xDani 7 5,919 Último mensaje 28 Diciembre 2012, 14:30 pm
por avesudra
[Micro-rutina] strlen - ANSI « 1 2 »
ASM
Karcrack 13 8,040 Último mensaje 4 Abril 2013, 02:14 am
por mr.blood
strlen() y .length()
Programación C/C++
erest0r 4 4,505 Último mensaje 17 Septiembre 2013, 08:25 am
por erest0r
Duda con programa - funcion strlen?
Programación C/C++
welchu 9 4,730 Último mensaje 18 Febrero 2014, 03:11 am
por NOB2014
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines