Conjunto de instrucciones, SBC por qué es necesario invertir C
Cabe señalar que en la instrucción SUBS, si se produce una operación de préstamo, el bit de bandera C en el registro CPSR se establece en 0: si no se produce ninguna operación de préstamo, el bit de bandera C en el registro CPSR se establece en 1. Esto es exactamente lo opuesto a la instrucción de acarreo en la instrucción ADDS. Esto es principalmente para adaptarse a las necesidades operativas de instrucciones como SBC.
Instrucción de resta bit a bit SBC:
La instrucción SBC resta el valor representado por
"Arquitectura y programación ARM" Du Chunlei P67
¿Cómo entiendes la configuración inversa y luego el código inverso en este lugar?
Creo que sí. La oración en fuente roja de arriba no es exacta. El propio SUB resta, basándose en el código de complemento, es decir, complemento (complemento
Supongamos que se produce un préstamo y el bit de marca C es 0 en este momento, luego se invierte 0 y el resultado es 0xFFFF (suponiendo un sistema operativo de 16 bits, que es 16 1) y 0xFFFF Resulta ser complemento a 1, por lo que X es 0xFFFF, lo que significa que cuando se produce un préstamo, lo que sucede en el mundo decimal es en realidad "menos uno", lo que cumple con los requisitos.
En consecuencia, si no hay préstamo, se invierte 1 y el valor alcanza 0x0000, que es exactamente el complemento de -0, que cumple con los requisitos.
====Lo siguiente continúa citando:
La instrucción SBC y la instrucción SUBS se pueden usar juntas para restar dos operandos de 64 bits. Si un operando fuente de 64 bits se coloca en los registros RO y R I, con el valor inferior de 32 bits ubicado en RO: otro operando fuente de 64 bits se coloca en los registros R2 y R3, con el valor inferior de 32 bits ubicado en R2 . La siguiente secuencia de instrucciones implementa la operación de resta de dos operandos de 64 bits.
SUBS R4, R0, R2 SBC R5, Rl, R3
Cabe señalar que en la instrucción SBCS, si se produce una operación de préstamo, el indicador C en el registro CPSR se establece a 0: si no se produce ninguna operación de préstamo, el bit de bandera C en el registro CPSR se establece en 1. Esto es exactamente lo opuesto a la instrucción de acarreo en la instrucción ADDS.
¡Corrígeme si entiendes lo anterior!