Red de conocimiento informático - Computadora portátil - ¿Qué significa cmp?

¿Qué significa cmp?

cmp significa comparación entre dos operandos.

cmp es la abreviatura de comparar, un término comúnmente utilizado para describir una comparación entre dos operandos. Las comparaciones pueden ser a nivel de bytes, a nivel de bits u otros niveles, según los tipos de datos de los operandos que se comparan. La operación cmp normalmente devuelve un valor booleano que indica si los dos operandos son iguales o cuál operando es mayor o menor que el otro.

Cabe destacar que la instrucción cmp sólo se utiliza para comparar dos valores, no cambia el valor en ningún registro o memoria. En cambio, simplemente establece indicadores según el resultado de la comparación. Los programadores pueden realizar otras operaciones basadas en estos indicadores, como saltos, ejecución condicional, etc.

Hay tres posibilidades para comparar resultados: igual, mayor que y menor que. Una vez completada la comparación, la CPU utilizará cmp como instrucción de ensamblaje para comparar la relación de tamaño entre los dos datos y establecerá el bit de bandera correspondiente para instrucciones de bifurcación posteriores.

Explicación detallada del comando cmp

Ejemplo: cmp oprd1, oprd2.

Resta el segundo operando de la primera operación, pero no afecta el valor del segundo operando. Afecta al CF, ZF, OF, AF y PF de la bandera.

Si ZF=1 es simple después de ejecutar la instrucción, significa que los dos números son iguales, porque cero es 1, lo que significa que el resultado es 0.

Cuando no hay signo: si CF = 1, significa que hay un acarreo o un préstamo. cmp es una operación de resta, por lo que puede verse como un préstamo. ; oprd2. CF = 0 significa que no hay préstamo, pero en este momento debemos prestar atención a si ZF es 0. Si es 0, significa que el resultado no es 0, por lo que en este momento oprd1gt;

Cuando hay un signo: si SF=0, OF=0, significa que el valor en este momento es un número positivo y no hay desbordamiento. Se puede ver intuitivamente, oprd1gt; Si SF = 1, OF = 0, significa que el valor en este momento es un número negativo y no hay desbordamiento, entonces es oprd1lt; Si SF = 0, OF = 1, significa que el valor en este momento es un número positivo y hay desbordamiento. Se puede ver que oprd1lt; Si SF = 1, OF = 1, significa que el valor en este momento es un número negativo y hay desbordamiento. Se puede ver que oprd1gt;

Las dos últimas razones por las que se puede hacer este juicio son los problemas esenciales del desbordamiento: dos números son positivos, si se suman, el valor es negativo, lo que significa desbordamiento. Si los dos números son negativos, súmelos y si el valor es positivo, significa desbordamiento. Por lo tanto, si lo positivo se vuelve negativo, se desbordará, y si lo negativo se vuelve positivo, se desbordará.