assembly - registers - ¿Qué hace la instrucción `test`?
lenguaje ensamblador x86 (1)
Prueba el registro contra sí mismo, solo para establecer las banderas. El resultado será diferente para un valor de cero y un valor distinto de cero.
Esta pregunta ya tiene una respuesta aquí:
- `testl` eax contra eax? 8 respuestas
Estoy viendo algunos códigos pequeños de ensamblador y tengo problemas para entender la instrucción TEST y su uso. Estoy mirando el siguiente código al final de un bucle:
8048531: 84 c0 test al,al
8048533: 75 dc jne 8048511 <function+0x2d>
La forma en que entiendo TEST es que funciona un poco como el operador AND y establece algunas banderas. Supongo que realmente no entiendo cómo funcionan las banderas. test al,al
me parece que comprueba los mismos bits inferiores y siempre obtendrá los mismos resultados.
¿Alguien puede explicar?