Hola a todos , hoy buscar una string dentro de otra , esto es una de las cosas que me faltaban por hacer y esta es la forma que encontré :
En el caso de encontrarse la string buscada dentro de la más grande , el código devuelve ah con valor 0.
Devuelve en el registro ebx la posición en memoria donde se encontró . Se le puede agregar fácilmente la función de buscar
a partir de un determinado lugar , si ven algún problema escriban que solo llevo en esto 2 meses.
xor ebx,ebx
mov ebp,offset buscar ;; Esta es la string mas grande donde buscaremos.
mas:
mov edx,offset abuscar ;; Esta es la string que se buscara dentro de la más grande
denuevo:
mov ecx,ebp ; Este código es para ir guardando la posición donde se encontró
mov al,byte ptr ds:[ebp]
mov ah,byte ptr ds:[edx]
inc ebp
cmp al,bl ; Compara con 00
jz noes ; Sale si no son iguales
cmp al,ah ; Compara los primeros caracteres
jnz denuevo ; Vuelve si no son iguales ...
cmp ah,bl
jz elhasmer
;mov ecx,ebp
otra:
inc edx
mov al,byte ptr ds:[ebp]
mov ah,byte ptr ds:[edx]
inc ebp
cmp ax,bx
jz sis ; Salta si se encuentra
cmp al,ah
jz otra
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmp ah,2Ah ;;;;;;;;;;;;;;;;;
jz otra ;;;;;;;;;;;Esta parte es para hacer búsquedas con asteriscos
;;;;;;;;;;;;;;;;;;;;;;;;;;;; Puede eliminarse
elhasmer:
cmp ah,bl
jz sis ; Salta si se encuentra
cmp al,bl
jnz mas
;;; Devuelve en "AH" 00 si esta dentro de la string principal
--------
Con la busqueda con asteriscos el codigo nos permite buscar por ejemplo :
ho** mi nombr* es **** y programo en asm
Nota :: No introducir un * en el principio de la cadena a buscar ya que no lo programe para esa función y ademas atrasa la búsqueda y no tiene mucho sentido hacer búsquedas de esa forma.
Nota :: Desactivar la busqueda generica si se estan buscando contraseñas ya que seria muy facil penetrar en nuestro sistema con ******* , jajajajajajaj
Creo que se puede optimizar ,esa tarea es para después porque
cuando lo terminé tenía la cabeza caliente .Si alguien se anima a optimizarlo ,que me escriba.
Chao y saludos a todos los de este sub-foro que me han caído bien , parece que asm es un filtro anti trolls, jajaja.
Escriban!!!