stringtranslate.com

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 8080 , Zilog Z80 , x86 , [1] y la serie Atmel AVR , entre otras. . Indica cuando se ha generado un acarreo o préstamo a partir de los cuatro bits menos significativos del registro del acumulador después de 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 (que incluye casi todas las CPU modernas) sumará dos valores de bytes de 8 bits de acuerdo con las reglas de la suma binaria simple. Por ejemplo, sumar 25 16 y 48 16 produce 6D 16 . Sin embargo, para los valores decimales codificados en binario (BCD), donde cada cuarteto de 4 bits representa un dígito decimal, la suma es más complicada. Por ejemplo, sumando el valor decimal 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 cuarteto inferior de este valor es un dígito no decimal (D), se debe ajustar 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, sumar los valores BCD 39 16 y 48 16 produce 81 16 . Este resultado no tiene un cuarteto bajo no decimal, pero provoca un traslado del dígito menos significativo (cuatro bits inferiores) al dígito más significativo (cuatro bits superiores). Esto se indica cuando la CPU configura el indicador de medio acarreo. Este valor también debe corregirse sumando 06 16 a 81 16 para producir 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, entonces se debe sumar 60 16 al valor para producir el resultado BCD correcto. Por ejemplo, sumar 72 16 y 73 16 produce E5 16 . Dado que el dígito más significativo de esta suma no es decimal (E), sumarle 60 16 produce un resultado BCD corregido de 145 16 . (Tenga en cuenta que el primer dígito 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 hace que se establezca 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 sumando 60 16 para producir el valor BCD final correcto.

La bandera de transporte auxiliar en x86

El indicador de transporte auxiliar (AF) es un indicador de CPU en el registro FLAGS de todas las CPU compatibles con x86 , [2] y la familia 8080 anterior . En ocasiones, Intel lo ha denominado Bandera de ajuste. [3] El bit de bandera está ubicado en la posición  4 en el registro de bandera 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 cuarteto inferior. Se utiliza principalmente para admitir aritmética decimal codificada en binario (BCD).

El indicador de acarreo auxiliar se establece (en 1) si durante una operación de " adición " hay un acarreo desde el cuarteto bajo (los cuatro bits más bajos) al cuarteto más alto (los cuatro bits superiores), o un préstamo del cuarteto más alto al más bajo. mordisquear, en la porción de 8 bits de orden inferior, durante una resta. De lo contrario, si no se produce tal acarreo o préstamo, la bandera se borra o se "reinicia" (se establece en 0).[4]

Ver 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 de arquitecturas Intel 64 e IA-32, vol. 1. diciembre de 2022. p. 3-16.
  3. ^ Manual del desarrollador de la familia Pentium Pro: volumen 2 (PDF) . Enero de 1996. pág. 3-11.
  4. ^ "Manual del usuario de la familia 8086" (PDF) . Intel . Consultado el 2 de julio de 2020 .