Articulo de referencia

Bandera de medio porte

Un indicador de medio acarreo (también conocido como indicador auxiliar ) es un bit de indicador de condición en el registro de estado de muchas familias de CPU , como Intel 808...

Un indicador de medio acarreo (también conocido como indicador auxiliar ) es un bit de indicador de condición en el registro de estado de muchas familias de CPU , como Intel 8080 , Zilog Z80 , x86 [ 1 ] y la serie Atmel AVR , entre otras. Indica cuándo se ha generado un acarreo o préstamo a partir de los cuatro bits menos significativos del registro acumulador tras la ejecución de una instrucción aritmética . Se utiliza principalmente en instrucciones aritméticas decimales ( BCD ).

Uso

Normalmente, un procesador que utiliza aritmética binaria (lo que incluye casi todas las CPU modernas) suma dos valores de byte de 8 bits según las reglas de la suma binaria simple. Por ejemplo, la suma de 25 16 y 48 16 produce 6D 16. Sin embargo, para los valores decimales codificados en binario (BCD), donde cada nibble de 4 bits representa un dígito decimal, la suma es más compleja. Por ejemplo, al sumar los valores decimales 25 y 48, que están codificados como los valores BCD 25 16 y 48 16 , la suma binaria de los dos valores produce 6D 16. Dado que el nibble inferior de este valor es un dígito no decimal (D), debe ajustarse sumando 06 16 para producir el resultado BCD correcto de 73 16 , que representa el valor decimal 73.

 0010 0101 25 + 0100 1000 48 -----------  0110 1101 6D , resultado intermedio + 0110 06, ajuste -----------  0111 0011 73 , resultado ajustado

Asimismo, al sumar los valores BCD 39 16 y 48 16 se obtiene 81 16. Este resultado no tiene un nibble bajo no decimal, pero sí provoca un acarreo del dígito menos significativo (los cuatro bits inferiores) al dígito más significativo (los cuatro bits superiores). Esto se indica mediante la activación del indicador de medio acarreo por parte de la CPU. Este valor también debe corregirse sumando 06 16 a 81 16 para obtener un resultado BCD corregido de 87 16 .

 0011 1001 39 + 0100 1000 48 -----------  1000 0001 81 , resultado intermedio + 0110 06, ajuste -----------  1000 0111 87 , resultado ajustado

Finalmente, si una suma da como resultado un dígito alto no decimal, se debe sumar 60/16 al valor para obtener el resultado BCD correcto. Por ejemplo, al sumar 72/16 y 73/16 se obtiene E5/ 16 . Dado que el dígito más significativo de esta suma no es decimal (E), al sumarle 60/16 se obtiene un resultado BCD corregido de 145/16 . (Tenga en cuenta que el dígito 1 inicial es en realidad un bit de acarreo ).

 0111 0010 72 + 0111 0011 73 -----------  1110 0101 E5 , resultado intermedio + 0110 60, ajuste ----------- 1 0100 0101 145 , resultado ajustado

En resumen, si el resultado de una suma binaria contiene un dígito bajo no decimal o provoca que se active el indicador de medio acarreo, el resultado debe corregirse sumándole 06 16 ; si el resultado contiene un dígito alto no decimal, el resultado debe corregirse aún más sumándole 60 16 para producir el valor BCD final correcto.

La bandera de porte auxiliar en x86

El indicador de acarreo auxiliar (AF) es un indicador de la CPU en el registro FLAGS de todas las CPU compatibles con x86 [ 2 ] y la familia 8080 anterior . Intel lo ha denominado ocasionalmente indicador de ajuste [ 3 ] . El bit del indicador se encuentra en la posición 4 del registro de indicadores de la CPU. Indica cuándo se ha generado un acarreo o préstamo aritmético a partir de los cuatro bits menos significativos, o nibble inferior. Se utiliza principalmente para admitir la aritmética decimal codificada en binario (BCD). 

El indicador de acarreo auxiliar se activa (a 1) si durante una operación de suma se produce un acarreo desde el nibble inferior (los cuatro bits menos significativos) al nibble superior (los cuatro bits más significativos), o un préstamo desde el nibble superior al nibble inferior, en la porción de 8 bits de orden inferior, durante una resta. En caso contrario, si no se produce ningún acarreo ni préstamo, el indicador se desactiva. [ 4 ]

Véase también

Referencias

  1. "Manual del desarrollador de software de arquitectura Intel, volumen 2: Manual de referencia del conjunto de instrucciones" (PDF) . Consultado el 29 de mayo de 2013 .
  2. Manual del desarrollador de software para arquitecturas Intel 64 e IA-32, vol. 1. Dic. 2022. págs. 3-16. 
  3. Manual del desarrollador de la familia Pentium Pro: Volumen 2 (PDF) . Enero de 1996. págs. 3-11. 
  4. "Manual de usuario de la familia 8086" (PDF) . Intel. Archivado del original (PDF) el 27 de septiembre de 2020. Consultado el 2 de julio de 2020 .