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


Tema destacado: ¿Eres usuario del foro? Ahora tienes un Bot con IA que responde preguntas. Lo puedes activar en tu Perfil


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10
31  Programación / ASM / Re: Recopilación de mis codigos. en: 26 Junio 2009, 19:16 pm
bien yst, deberias intentar hacer un crypter  ;)
32  Programación / ASM / Re: [ASM]Algoritmo de Ordenacion Quicksort en: 24 Junio 2009, 04:34 am
gracias  :-[
tarde mucho depurando pero por lo menos quedo mas o menos decente  :)

P.D si no quieren que les cause un error cuando tienen un numero negativo cambien los saltos  jl y jg por jb y ja, lo unico malo es que los negativos los ordenara como mayores   :(

Yst si se que se puede y tambien se puede adaptar para que ordene qwords  :xD
33  Programación / ASM / [ASM]Algoritmo de Ordenacion Quicksort en: 24 Junio 2009, 04:04 am
Bueno aqui les dejo una traduccion a ensamblador del algoritmo de QuickSort me costo algo de trabajo y estuve un buen depurando pero por fin salio.
Lo malo es que solo funciona con numeros de 32 bits positivos pero se puede arreglar para que funcionen con bytes y words (ahora lo de negativos no se intente cambiar jl y jg por jb y ja pero me los pone como mayores que cualquier positivo)

Si de casualidad alguien no entiende el codigo que me diga y le pongo comentarios   ;)

Código
  1. format pe console
  2. include '\fasm\include\win32ax.inc'
  3. entry start
  4. .data
  5. vector          dd      32,9,11,5,99,3,1,2,5,12,100,4365
  6. formato         db      '%i %i %i %i %i %i %i %i %i %i %i %i',13,10,0
  7. .code
  8. start:
  9.        call Dump
  10.        push 11
  11.        push 0
  12.        push vector
  13.        call quicksort
  14.        call Dump
  15.  
  16. ret
  17.  
  18. quicksort:
  19.         push ebp
  20.         mov ebp,esp
  21.         push esi
  22.         push ebx
  23.         push ecx
  24.         push edx
  25.         mov ebx,dword[ebp + 12]
  26.         mov ecx,dword[ebp + 16]
  27.         cdq
  28.         mov eax, ebx
  29.         add eax, ecx
  30.         push ecx
  31.         mov ecx,2
  32.         div ecx
  33.         pop ecx
  34.         xchg edx,eax
  35.         mov esi, [ebp + 8]
  36.         mov edx,dword[esi + edx * 4]
  37.         qs@L1:
  38.                qs@L1@L1:
  39.                        cmp dword[esi + ebx * 4],edx
  40.                        jge qs@L1@L1@out
  41.                        inc ebx
  42.                        jmp qs@L1@L1
  43.                qs@L1@L1@out:
  44.                qs@L1@L2:
  45.                        cmp dword[esi + ecx * 4],edx
  46.                        jle qs@L1@L2@out
  47.                        dec ecx
  48.                        jmp qs@L1@L2
  49.                qs@L1@L2@out:
  50.                qs@L1@IF1:
  51.                        cmp ebx, ecx
  52.                        jg qs@L1@IF1@out
  53.                        mov eax, dword[esi + ebx * 4]
  54.                        xchg eax, dword[esi + ecx * 4]
  55.                        mov dword[esi + ebx * 4], eax
  56.                        inc ebx
  57.                        dec ecx
  58.                qs@L1@IF1@out:
  59.                cmp ebx,ecx
  60.                jle qs@L1
  61.         qs@L1@out:
  62.         qs@IF1:
  63.                cmp dword[ebp + 12],ecx
  64.                jge qs@IF1@out
  65.                push ecx
  66.                push dword[ebp + 12]
  67.                push esi
  68.                call quicksort
  69.         qs@IF1@out:
  70.         qs@IF2:
  71.                cmp ebx, dword[ebp + 16]
  72.                jge qs@IF2@out
  73.                push dword[ebp + 16]
  74.                push ebx
  75.                push esi
  76.                call quicksort
  77.         qs@IF2@out:
  78.         pop edx
  79.         pop ecx
  80.         pop ebx
  81.         pop esi
  82.         pop ebp
  83. retn 12
  84.  
  85. Dump:
  86.        pushad
  87.        mov edi,vector
  88.        push dword[edi + 11 * 4]
  89.        push dword[edi + 10 *4 ]
  90.        push dword[edi + 9 * 4]
  91.        push dword[edi + 8 * 4]
  92.        push dword[edi + 7 * 4]
  93.        push dword[edi + 6 * 4]
  94.        push dword[edi + 5 * 4]
  95.        push dword[edi + 4 * 4]
  96.        push dword[edi + 3 * 4]
  97.        push dword[edi + 2 * 4]
  98.        push dword[edi + 1 * 4]
  99.        push dword[edi]
  100.        push formato
  101.        call [printf]
  102.        add esp,52
  103.        popad
  104. ret
  105. section '.idata' import data readable
  106. library msvc,'msvcrt.dll'
  107. import msvc,printf,'printf'
  108.  

los parametros se pasan por la pila
y son asi
quicksort(int *vector, int izq, int der)
34  Programación / Scripting / Re: Cómo saber la unidad donde se ejecuta un .bat en: 23 Junio 2009, 23:04 pm
usa %~d0 que regresa la unidad en la que se encuentra guradado
si no me crees intenta

explorer %~d0 y te abrira una ventana del explorador con la ruta en la que se guarde
35  Foros Generales / Foro Libre / Re: Cuantos años tiene su cerebro.? en: 23 Junio 2009, 02:13 am
dice que tengo 36 y tengo 20 menos

O el test es malo, o tenemos la cabeza..ejem...quemada..xD
eso es normal, estar todo el dia en la compu alguna consecuencia tendria que traer  :xD
36  Foros Generales / Foro Libre / Re: Cuantos años tiene su cerebro.? en: 23 Junio 2009, 00:53 am
dice que tiene 29 y y0 tengo 17,
sera que me lo cambiaron de chiquito  :¬¬ :xD
37  Programación / ASM / Re: Buscar una string dentro de otra!!!! en: 22 Junio 2009, 22:33 pm
ya tienes la busqueda el siguiente paso logico seria reemplazar  o ponerle a la busqueda la opcion case sensitive ;D
38  Programación / ASM / Re: Buscar una string dentro de otra!!!! en: 22 Junio 2009, 22:04 pm
jeje ya empezamos con la fiebre de las funciones de cadenas   :xD
normalmente haria mi propia version pero ando un poco corto de tiempo tengo examen de historia  :-(
mira echale un vistazo al algoritmo Boyer-Moore para la busqueda de cadenas, tal vez te ayude a mejorar el tuyo

http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
39  Programación / Ejercicios / Re: Algoritmia-Ejercicios introductorios. en: 21 Junio 2009, 04:47 am
el 2 en asm (el mas facil) conforme vaya mejorando mi uso de arrays pongo los otros (claro si no me da weba  :laugh: )

Código
  1. format pe console
  2. include 'c:\fasm\include\win32ax.inc'
  3. entry main
  4. .data
  5.        number  dd      ?
  6. .code
  7. main:
  8.        invoke printf,"Escribe un numero, 0 para salir: "
  9.        add esp,4
  10.        invoke scanf,"%d",number
  11.        add esp,8
  12.        cmp [number],0
  13.        jle salir
  14.        push [number]
  15.        call factorial
  16.        invoke printf,"El factorial es %d",eax
  17.        add esp,8
  18.        push 10
  19.        call [putchar]
  20.        jmp main
  21.        salir:
  22. ret
  23.  
  24. factorial:
  25.        push ebp
  26.        mov ebp,esp
  27.        mov ecx,[ebp + 8]
  28.        mov eax,1
  29.        fact@L1:
  30.                cdq
  31.                mul ecx
  32.                dec ecx
  33.                cmp ecx,0
  34.                jg fact@L1
  35.        pop ebp
  36. retn 4
  37. section '.idata' import data readable
  38. library msvc,'msvcrt.dll'
  39. import msvc,printf,'printf',scanf,'scanf',putchar,'putchar'
  40.  
40  Programación / ASM / Re: Tutorial ASM (básico) + ejemplos en: 19 Junio 2009, 00:57 am
checa en este hilo

http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.15.html

ahi hay mas ejemplos o si no los codigos de yst

http://foro.elhacker.net/asm/recopilacion_de_mis_codigos-t256657.0.html
Páginas: 1 2 3 [4] 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines