¿Qué significan los símbolos de fórmula de bandera en la documentación del ensamblador AVR?

Estaba leyendo sobre algo en la documentación del ensamblador del microcontrolador AVR y generalmente me encuentro con una línea que se usa para describir cómo afectaría una instrucción a un indicador específico en el registro de estado.

tomemos un ejemplo de la página de instrucciones AGREGAR

H:
Td3 • Rr3 + Rr3 • R3 ¯ + R3 ¯ • Td3
establecido si hubo un acarreo del bit 3; borrado de lo contrario

En esta línea
Rd3 • Rr3 + Rr3 • R3 ¯ + R3 ¯ • Rd3
¿Cómo puedo leer esta línea, qué significan esos símbolos?

Respuestas (1)

Para empezar, las fórmulas sufren un error tipográfico en esa versión HTML de los documentos (el pdf no). La fórmula que cita debe decir:

R d 3 R r 3 + R r 3 R 3 ¯ + R 3 ¯ R d 3

En esa fórmula hay tres valores. R d es el valor actual del registro de destino, R r es el valor actual del registro fuente, y R es el resultado de la instrucción (por ejemplo, porque ADDsería R = R d + R r ).

El número junto al valor representa qué bit del valor se utiliza en el cálculo. En este caso sería un poco 3 para cada uno de los registros.

Los operadores son los operadores booleanos estándar para AND ( ) y O ( + ).

Si agrega los corchetes inferidos (Y tiene prioridad sobre O en las ecuaciones booleanas), obtiene:

( R d 3 R r 3 ) + ( R r 3 R 3 ¯ ) + ( R 3 ¯ R d 3 )

Esperemos que en esa forma sea bastante fácil de seguir.

¡AhhhA, y me preguntaba por qué no podía leerlo!
Una pregunta más es cómo la CPU del AVR decide cuándo configurar la bandera, ¿utiliza un hardware correspondiente para hacer esto? en otras palabras, ¿de dónde salió esta fórmula?
@MuhammadNour estará relacionado con la forma en que la CPU calcula las banderas internamente. Es posible que no usen esa combinación exacta de puertas, ya que hay muchas instrucciones que producen diferentes resultados de bandera. De hecho, puedes derivar la fórmula tú mismo si te sientas y averiguas qué representan las banderas. Ciertamente, debería ser posible trabajar hacia atrás a partir de la fórmula para ver que es correcta.