¿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á.