Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ny0x

#31
ASM / Re: Recopilación de mis codigos.
26 Junio 2009, 19:16 PM
bien yst, deberias intentar hacer un crypter  ;)
#32
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
ASM / [ASM]Algoritmo de Ordenacion Quicksort
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 (asm) [Seleccionar]

format pe console
include '\fasm\include\win32ax.inc'
entry start
.data
vector          dd      32,9,11,5,99,3,1,2,5,12,100,4365
formato         db      '%i %i %i %i %i %i %i %i %i %i %i %i',13,10,0
.code
start:
       call Dump
       push 11
       push 0
       push vector
       call quicksort
       call Dump

ret

quicksort:
        push ebp
        mov ebp,esp
        push esi
        push ebx
        push ecx
        push edx
        mov ebx,dword[ebp + 12]
        mov ecx,dword[ebp + 16]
        cdq
        mov eax, ebx
        add eax, ecx
        push ecx
        mov ecx,2
        div ecx
        pop ecx
        xchg edx,eax
        mov esi, [ebp + 8]
        mov edx,dword[esi + edx * 4]
        qs@L1:
               qs@L1@L1:
                       cmp dword[esi + ebx * 4],edx
                       jge qs@L1@L1@out
                       inc ebx
                       jmp qs@L1@L1
               qs@L1@L1@out:
               qs@L1@L2:
                       cmp dword[esi + ecx * 4],edx
                       jle qs@L1@L2@out
                       dec ecx
                       jmp qs@L1@L2
               qs@L1@L2@out:
               qs@L1@IF1:
                       cmp ebx, ecx
                       jg qs@L1@IF1@out
                       mov eax, dword[esi + ebx * 4]
                       xchg eax, dword[esi + ecx * 4]
                       mov dword[esi + ebx * 4], eax
                       inc ebx
                       dec ecx
               qs@L1@IF1@out:
               cmp ebx,ecx
               jle qs@L1
        qs@L1@out:
        qs@IF1:
               cmp dword[ebp + 12],ecx
               jge qs@IF1@out
               push ecx
               push dword[ebp + 12]
               push esi
               call quicksort
        qs@IF1@out:
        qs@IF2:
               cmp ebx, dword[ebp + 16]
               jge qs@IF2@out
               push dword[ebp + 16]
               push ebx
               push esi
               call quicksort
        qs@IF2@out:
        pop edx
        pop ecx
        pop ebx
        pop esi
        pop ebp
retn 12

Dump:
       pushad
       mov edi,vector
       push dword[edi + 11 * 4]
       push dword[edi + 10 *4 ]
       push dword[edi + 9 * 4]
       push dword[edi + 8 * 4]
       push dword[edi + 7 * 4]
       push dword[edi + 6 * 4]
       push dword[edi + 5 * 4]
       push dword[edi + 4 * 4]
       push dword[edi + 3 * 4]
       push dword[edi + 2 * 4]
       push dword[edi + 1 * 4]
       push dword[edi]
       push formato
       call [printf]
       add esp,52
       popad
ret
section '.idata' import data readable
library msvc,'msvcrt.dll'
import msvc,printf,'printf'


los parametros se pasan por la pila
y son asi
quicksort(int *vector, int izq, int der)
#34
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
Cita de: The Facku en 23 Junio 2009, 02:05 AM
Cita de: rockernault en 23 Junio 2009, 02:03 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
dice que tiene 29 y y0 tengo 17,
sera que me lo cambiaron de chiquito  :¬¬ :xD
#37
ASM / Re: Buscar una string dentro de otra!!!!
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
ASM / Re: Buscar una string dentro de otra!!!!
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
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 (asm) [Seleccionar]

format pe console
include 'c:\fasm\include\win32ax.inc'
entry main
.data
       number  dd      ?
.code
main:
       invoke printf,"Escribe un numero, 0 para salir: "
       add esp,4
       invoke scanf,"%d",number
       add esp,8
       cmp [number],0
       jle salir
       push [number]
       call factorial
       invoke printf,"El factorial es %d",eax
       add esp,8
       push 10
       call [putchar]
       jmp main
       salir:
ret

factorial:
       push ebp
       mov ebp,esp
       mov ecx,[ebp + 8]
       mov eax,1
       fact@L1:
               cdq
               mul ecx
               dec ecx
               cmp ecx,0
               jg fact@L1
       pop ebp
retn 4
section '.idata' import data readable
library msvc,'msvcrt.dll'
import msvc,printf,'printf',scanf,'scanf',putchar,'putchar'