>> Tecnologia Eletrônica >  >> Telefones >> Acessórios para Telefone

Entendendo a Flag de Carry Auxiliar no Microprocessador 8085

A flag de Carry Auxiliar (AC) no microprocessador Intel 8085 desempenha papel especializado em operações aritméticas, particularmente ao trabalhar com números Binary Coded Decimal (BCD). Diferente da flag Carry padrão que monitora overflow do bit mais significativo, a flag AC rastreia carry ou borrow do bit 3 para bit 4—essencialmente a fronteira entre os nibbles inferior e superior do acumulador.

Por Que a Flag AC Importa para Aritmética BCD

Na representação BCD, cada dígito decimal ocupa um nibble de 4 bits (0000–1001). Ao somar ou subtrair dois valores BCD, o resultado binário pode produzir um dígito BCD inválido (1010–1111) ou gerar um carry entre nibbles que a flag Carry padrão não detecta. A flag AC preenche esta lacuna sinalizando exatamente quando um carry ou borrow cruza a fronteira do nibble.

Corrigindo Resultados BCD Inválidos

Após uma operação aritmética, se a flag AC está setada, o resultado contém dígito BCD inválido no nibble inferior. A correção é direta:

  • Adição: Some 6 (0110₂) ao acumulador para pular os seis códigos inválidos e restaurar dígito BCD válido, propagando qualquer novo carry ao nibble superior.
  • Subtração: Subtraia 6 (0110₂) do acumulador para compensar o borrow que cruzou a fronteira do nibble.

Exemplo Prático

Some os números BCD 3 (0011) e 5 (0101):

  1. Adição binária resulta em 1000 (8), que é dígito BCD válido, então AC = 0 e nenhuma correção necessária.
  2. Agora some 9 (1001) e 7 (0111). Soma binária = 10000. O nibble inferior é 0000, mas um carry moveu do bit 3 para bit 4, então AC = 1. Somando 6 obtemos 0110 (6) no nibble inferior com carry no nibble superior, produzindo o resultado BCD correto 16 (0001 0110).

Resumo

A flag AC é um auxílio de hardware dedicado para aritmética BCD no 8085. Detectando carries na fronteira do nibble, permite correções de software simples que mantêm resultados BCD válidos sem exigir instruções completas de ajuste decimal.