Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Assembly cap5, Notas de estudo de Engenharia Telemática

O registrador de sinalizadores (FLAGS)

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 4

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Cap5 – O registrador de sinalizadores (FLAGS)
Página 1 de 4
5. O registrador de sinalizadores (FLAGS)
5.1 Flags de Status e Flags de Controle
indica o estado do microprocessador após a execução de cada instrução;
conjunto de bits individuais, cada qual indicando alguma propriedade;
subdividem-se em: Flags de Estado (status) e Flags de Controle.
organização: 1 registrador de 16 bits
6 FLAGS de estado
3 FLAGS de controle
7 bits não utilizados (sem função)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF
DF
IF TF SF ZF AF PF
CF
Flags de estado
Nome
Símbolo
Função/característica
Carry Flag CF Indicador de "vai-um"
Parity Flag PF Indicador de número PAR de 1's no byte inferior
Auxiliary Carry AF Indicador de "vai-um" para operações em BCD
Zero Flag ZF Indicador de "zero" na última operação
Sign Flag SF Indicador de resultado negativo
Overflow Flag OF Indicador de erro de transbordamento
Obs: o emprego dos Flags de Controle será discutido juntamente com
operações com arrays e interrupções.
pf3
pf4

Pré-visualização parcial do texto

Baixe Assembly cap5 e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

5. O registrador de sinalizadores (FLAGS)

5.1 Flags de Status e Flags de Controle

  • indica o estado do microprocessador após a execução de cada instrução;
  • conjunto de bits individuais, cada qual indicando alguma propriedade;
  • subdividem-se em: Flags de Estado ( status ) e Flags de Controle.
  • organização: 1 registrador de 16 bits 6 FLAGS de estado 3 FLAGS de controle 7 bits não utilizados (sem função) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF Flags de estado Nome Símbolo Função/característica Carry Flag CF Indicador de "vai-um" Parity Flag PF Indicador de número PAR de 1's no byte inferior Auxiliary Carry AF Indicador de "vai-um" para operações em BCD Zero Flag ZF Indicador de "zero" na última operação Sign Flag SF Indicador de resultado negativo Overflow Flag OF Indicador de erro de transbordamento Obs: o emprego dos Flags de Controle será discutido juntamente com operações com arrays e interrupções.

5.2 Overflow (erro de transbordamento) Overflow -> ocorre porque a representação dos números está limitada a uma certa faixa Tipos 8 bits 16 bits Não-sinalizado 0 a 255 0 a 65. Sinalizado (C2) -128 a +127 - 32.768 a + 32.

  • Qualquer operação aritmética que tenha como resultado um número fora da faixa de representação, estará produzindo (^) Overflow.
  • O resultado armazenado no registrador destino estará truncado e terá, portanto, um valor incorreto. Tem-se dois Flags que podem indicar overflow : CF e OF CF -> indica se há um vai-um para fora do Bit Mais Significativo do número MSB ( most significant bit ) ..... o número “transbordou”! OF -> testa o vem-um que chega e o vai-um gerado no MSB : se iguais (0 e 0 ou 1 e 1) -> OF = 0 se diferentes, OF = 1 ..... e ocorreu o overflow!

5.3 Como as instruções afetam os Flags Algumas instruções, imediatamente após a sua execução:

  • afetam todos os Flags;
  • afetam apenas alguns;
  • não afetam nenhum. Instrução Flags afetados MOV nenhum XCHG nenhum LEA nenhum ADD/SUB todos INC/DEC todos, exceto CF que não é afetado NEG todos, CF=1 se o resultado não for zero Exemplos: ADD AX,BX ;onde ambos AX e BX valem FFFFh FFFFh 1111 1111 1111 1111 b FFFFh + 1111 1111 1111 1111 b FFFEh 1 1111 1111 1111 1110 b Como resultado: CF = 1 AF = 1 ZF = 0 PF = 0 SF = 1 OF = 0 INC AL ;onde AL contem FFh FFh 1111 1111 b 01h + 1 b 100h (^) 1 0000 0000 b ... Como é implementado o INC AL? Como resultado: CF = não afetado AF = 1 ZF = 1 PF = 1 SF = 0 OF = 0