Red de conocimiento informático - Computadora portátil - 51 Problema del microcontrolador SP PSW DPTR

51 Problema del microcontrolador SP PSW DPTR

Para SP, además del valor inicial mov sp, #xxxh (xx es un número hexadecimal específico, cabe señalar que está en el rango anterior a 7FH), también hay push directo (dirección de byte), pop directo y ejecute la instrucción PUSH Cuando, el valor de SP es 1 y el contenido en este momento es la dirección del SP señalado por el directo presionado. Por ejemplo, si el valor inicial de sp se establece en 5fh y push 40h es. ejecutado, el valor de sp pasará a ser 60h y el contenido de 40h se almacenará en 60h. Pop es todo lo contrario. Primero almacena el contenido de la pila en la dirección de destino y luego establece el valor de sp en -1. PSW es ​​el registro de palabras de estado del programa, que describe principalmente el estado de cada bit de bandera cuando se ejecuta el programa. Incluye principalmente: cy ac f rs1 rs0 ov - p. Entre ellos, generalmente se usa cy ac ov p que afecta la operación. para operaciones aritméticas, es decir, suma, resta, multiplicación, división y ajuste de código BCD, en las que la suma y la resta tienen un impacto en los cuatro bits de bandera, la multiplicación y la división tienen un impacto en CY que se ha establecido en 0, y ov y p. rs1 rs0 se utiliza para determinar el grupo de registros en funcionamiento actualmente. No existe una forma especial de restar binario y hexadecimal. Si puedes restar en decimal, deberías poder hacer ambas cosas... Cuando el resultado es un número negativo, se almacena en la computadora en forma de complemento a dos. Por ejemplo, el valor de -1 almacenado en la computadora es FFH. Independientemente de si es un número con signo o sin signo, la computadora usa código binario para calcular internamente.

Pero durante el proceso de cálculo, Se debe juzgar si el valor del PSW es ​​realmente válido. Tome el resultado de 56h-f8h como ejemplo. En binario, si es 01010110-1111000, el siguiente bit más alto no se toma prestado, pero se toma prestado el bit más alto, por lo que OV es 1, lo que provoca un desbordamiento ~