Prueba (los dos operandos son AND, solo se modifica el bit de bandera y no se devuelve el resultado).
La prueba realiza una operación lógica AND en dos parámetros (destino y origen) y establece el registro de bandera según el resultado. Los resultados en sí no se guardan. Probar los comandos AX,BX y AX,BX tiene el mismo efecto. Sintaxis: PRUEBA r/m, r/m/datos.
Símbolos de impacto: C, O, P, Z, S (los dos símbolos C y O se pondrán a 0). Ejemplo:
1.Test se usa para probar un bit, como registro: test eax, 100 b; el sufijo b indica binario.
jnz * * * * * *Si el tercer dígito desde la derecha de eax es 1, jnz saltará. También creo que la condición para el salto jnz es ZF = 0, lo que significa que ZF (bandera cero) no está establecido, es decir, el resultado del AND lógico es 1,2. Un uso muy común de test es comprobar si un registro está vacío: test ecx, ecx.
Si ecx es cero en algún lugar de Jz, establezca el indicador cero de ZF en 1. JZ jump CMP es una función de instrucción de operación aritmética: compara dos valores (registro, memoria, valor directo).
Sintaxis: CMP r/m, r/m/data
Bits de bandera: C, P, A, Z, O Comparación CMP. (Se restan los dos operandos, solo se modifica el bit de bandera y el resultado no se devuelve).
Cmp es en realidad una resta que solo establece la bandera sin guardar la estructura, estableciendo la bandera Z (bandera cero).
Al igual que el acarreo, la bandera cero también está un bit en el registro de banderas interno. Por ejemplo:
Cmp eax, 2; si eax-2=0, es decir, EAX = 2, establezca el indicador cero en 1.
Jz * * * * Si se establece el indicador cero, salte a la lógica de prueba, el resultado de la operación es cero, establezca ZF (indicador cero) en 1
Si el resultado; de la resta aritmética de cmp es cero, entonces ZF (bandera cero) se establece en 1.