[TUTORIAL] ¿Como funciona la instruccion test y sus flags?

  • Hola Invitado ¿Quieres conversar con todos los usuarios de GamerzHacking?, No esperes mas y entra al canal de Discord dando clic AQUI
  • Hola Invitado, hemos decidido no subir mas videos de Game Hacking a la mierda de YouTube, mas informacion AQUI. Nuestro nuevo canal de videos ahora es COCOSCOPE.
  • Hola Invitado ¿Quieres formar parte del Staff de GamerzHacking?, No esperes mas y entra al siguiente enlace AQUI
  • Hola Invitado ¿Eres programador y quieres pertenercer GamerzHacking?, No esperes mas y entra a postular aqui AQUI

Snake

Desarrollador
Miembro del equipo
26 Nov 2017
28
19
3
20
Hago este post porque tenia esta duda hace unos dias esperando respuesta la cual lastimosamente no se obtuvo :v, sin embargo resolvi la duda por mi mismo, así que voy a dar una breve explicacion por si algun entusiasta por el conocimiento se encuentra con esta misma duda xd.

Resulta que la etiqueta test funciona como una AND que a diferencia de este, no guarda su resultado en ningun lado , solamente lo utiliza para activar algunas flags, especificamente las flags ZF, PF, SF cada una se activa dependiendo de su resultado.

La flag ZF se activa si el resultado es 0 por ejemplo (if resultado == 0 ZF = 1) en caso de que no lo sea pues cambia a 0 de nuevo

La flag PF se activa segun el numero de bits activos del resultado ¿que quiere decir esto? significa que al pasar un numero a su notacion binaria se va a tomar en cuenta cuantos bits se encuentran activos o en 1, dependiendo de esto si el numero total de bits activos da un numero par se activa la flag PF, si es impar se desactiva

Por ejemplo
tenemos que el resultado da 5 en hexadecimal, esto en binario es 101, ¿cuantos bits tenemos activos? tenemos 2, ¿y el 2 es un numero par? pero por supuesto ;v por lo tanto PF = 1

La flag SF se activa si el resultado es un numero negativo de lo contrario se marca en 0

Complementando esto se encuentra a estos famosos saltos que lo que hacen es reaccionar a una flag y dependiendo de este hacen un salto a una direccion de memoria o simplemente no la hacen y dejan que el programa siga.

Como por ejemplo a la famosa JE que salta si la flag ZF esta activa y como vimos una de las instrucciones que la activa es TEST.

Juntas forman o simulan lo que es un condicional. Hay muchos tipos de saltos que reaccionan a diferentes flags, no las puedo mencionar todas aqui, pero te las dejo en las fuentes.

See you

Fuentes:
Por favor, Acceder o Registrarse para ver el contenido de las URL!

Por favor, Acceder o Registrarse para ver el contenido de las URL!

Por favor, Acceder o Registrarse para ver el contenido de las URL!
 
Última edición:
  • Like
Reactions: TzvictorHD and C0de