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 ~