tutorial registers lenguaje language instruction ensamblador assembly x86

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í:

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?