Estoy viendo algunos pequeños códigos ensambladores y estoy teniendo problemas para entender la instrucción TEST y su uso. Estoy mirando el siguiente código al final de un bucle:¿Qué significa la instrucción `test`?
8048531: 84 c0 test al,al
8048533: 75 dc jne 8048511 <function+0x2d>
mi modo de entender TEST es que funciona un poco como el operador AND y se establecen algunas banderas. Supongo que realmente no entiendo cómo funcionan las banderas. test al,al
parece que comprueba los mismos bits inferiores y siempre obtendrá los mismos resultados.
¿Alguien puede explicar?
Entonces, para aclarar, ¿cuándo la PRUEBA produce un resultado que hará saltar al JNE? – danielhc
Establece ZF si el registro probado es cero, de lo contrario, borra el indicador. El JNE salta (o no) dependiendo de esa bandera. –
@danielhc: La instrucción JNE también se conoce como JNZ - "Saltar si no es cero". En su caso, el salto se tomará si el registro al no es cero. – user200783