·

Engenharia Elétrica ·

Microprocessadores

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

- Instruções Aritméticas do 8085 - Microprocessadores I Professor: Alexandre César Rodrigues da Silva Universidade Estadual Paulista “Júlio de Mesquita Filho” Faculdade de Engenharia – Câmpus de Ilha Solteira Departamento de Engenharia Elétrica - 2º Semestre de 2021 - CPU - Unidade Lógica e Aritmética Arquitetura Interna do 8085 1 Registradores de uso Geral e Registrador de FLAG Registradores de Uso Geral e FLAG Registrador de Flag 2 Representação da Informação. Todas as informações no computador são representadas usando "0s"e "1s". Um Código de Operação (OpCode) é representado por "0s"e "1s"; Um dado é representado por "0s"e "1s"; Número sem sinal; Número com sinal; Número em ponto flutuante; Número na representação BCD (Decimal Codificado em Binário). Condição de Sensores / Atuadores; Etc. 3 Representação da Informação. Representação BCD Na representação BCD 4 bits são utilizados para codificar os números decimais de 0 até 9. O número decimal 132 é representado em BCD por: 0001 0011 0010 ou 01H 32H; O valor 0CH é uma representação inválida (ilegal) em BCD; O valor decimal 2,365 pode ser representado em BCD por: 0010 0011 0110 0101; O valor de uma série de "0s"e "1s"depende da interpretação; Cabe ao programador definir o significado dos "0s"e "1s"na representação das informações; Condição de Sensores / Atuadores; O Byte 00001111 pode indicar que os sensores do alarme conectados nas portas e janelas, representados pelo nibble menos signficativo do byte indicam que as portas e janelas correspondentes estão abertas. Na maioria das vezes estamos representando números decimais no computador. Por isso a representação BCD é muito importante. 4 Conjunto de Instruções do 8085 - ( Instruction Set ) ISA - Instruction Set Architecture As instruções do 8085 são classificadas em 5 grupos de instruções: Instruções de Transferência de dados; Instruções Aritméticas; Instruções Lógicas; Instruções de Desvios; Instruções de Controle. 5 Conjunto de Instruções do 8085 - ( Instruction Set ) As instruções do 8085 são classificadas em 5 grupos de instruções: Instruções de Transferência de dados; Instruções Aritméticas; Instruções Lógicas; Instruções de Desvios; Instruções de Controle. 6 Instruções Aritméticas. ADD Reg O conteúdo do registrador Reg é adicionado ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Todas as Flags são alteradas. Exemplo: ADD E Registradores A e E antes e depois de ADD E. 7 Instruções Aritméticas. ADD Reg Exemplo: ADD E Flag S = 0 Flag Z = 0 Flag AC = 0 Flag P = 0 Flag CY = 1 Registrador de Flag F = 03H 8 Instruções Aritméticas. ADI D8 O dado D8 contido na instrução é adicionado ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: ADI 32H 9 Instruções Aritméticas. ADD M O conteúdo da memória endereçada pelo par H (HL) é adicionado ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: ADD M Registradores A, H e L e memória de endereço C00AH antes e depois de ADD M. 10 Instruções Aritméticas. ADD M Exemplo: ADD M Flag S = 1 Flag Z = 0 Flag AC = 0 Flag P = 1 Flag CY = 0 Registrador de Flag F = 86H 11 Instruções Aritméticas. ADC Reg O conteúdo do registrador Reg e a Flag Carry (CY) são adicionados ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Todas as Flags são alteradas. Exemplo: ADC H Registradores A e H antes e depois de ADC H. 12 Instruções Aritméticas. ADC Reg Exemplo: ADC H Flag S = 1 Flag Z = 0 Flag AC = 0 Flag P = 1 Flag CY = 0 Registrador de Flag F = 86H 13 Instruções Aritméticas. ACI D8 O dado D8 contido na instrução e a Flag Carry (CY) são adicionados ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: ACI 32H 14 Instruções Aritméticas. ADC M O conteúdo da memória endereçada pelo par H (HL) e a Flag Carry (CY) são adicionados ao conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: ADC M 15 Observação sobre a operação de Subtração. SUBTRAÇÃO O 8085 não dispõe das operações (OpCodes) para a multiplicação e para a divisão; A operação de multiplicação/divisão pode ser realizada pela operação de Deslocamento para Esquerda/Direita; A operação de multiplicação/divisão pode ser realizada por sucessivas operações de Adição/Subtração; Internamente a subtração é realizada pela operação de adição em complemento de 2; O transporte gerado (vai um do 7º para o 8º bit) é complementado e armazenado na Flag Carry (CY); A Intel prefere usar o termo Carry e não Borrow. 16 Observação sobre a operação de Subtração. SUBTRAÇÃO Exemplo: C4H - 89H Operação de Subtração em Adição em complemento de 2. 17 Instruções Aritméticas. SUB Reg O conteúdo do registrador Reg e subtraido do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Todas as Flags são alteradas. Exemplo: SUB C Registradores A e C antes e depois de SUB C. 18 Instruções Aritméticas. SUB Reg Exemplo: SUB C 19 Instruções Aritméticas. SUI D8 O dado D8 contido na instrução e subtraido do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: SUI 98H 20 Instruções Aritméticas. SUB M O conteúdo da memória endereçada pelo par H (HL) e subtraido do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: SUB M 21 Instruções Aritméticas. SBB Reg O conteúdo do registrador Reg e a Flag Carry (CY) são subtraidos do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Todas as Flags são alteradas. Exemplo: SBB D A <= A - D - CY. 22 Instruções Aritméticas. SBI D8 O dado D8 contido na instrução e a Flag Carry (CY) são subtraidos do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: SBI 56H A <= A - 56 - CY. 23 Instruções Aritméticas. SBB M O conteúdo da memória endereçada pelo par H (HL) e a Flag Carry (CY) são subtraidos do conteúdo do Acumulador (Registrador A). O Resultado da operação é salva no Acumulador. Todas as Flags são alteradas. Exemplo: SBB M A <= A - Conteúdo da memória endereçada por HL - CY. 24 Instruções Aritméticas. DAA - (Acumulador Ajustado em Decimal) Após a adição de dois números na representação BCD a instrução DAA é executada para ajustar o resultado para BCD; Todas as Flags são alteradas; Como o ajuste é realizado: Se o nibble menos significativo for maior que 9 ou a Flag de auxiliar carry for igual a "1", soma-se 06H ao nibble menos significativo; Se o nibble mais significativo for maior que 9 ou a Flag carry for igual a "1", soma-se 06H ao nibble mais significativo. 25 Representação da Informação. Representação BCD Suponha que deseja-se somar dois números, por exemplo, 38 e 45 que na representação BCD tem-se 0011 1000 e 0100 0101. A adição resulta em 0111 1101. Na representação BCD o número 1101 é inválido, ilegal, não é permitido. Neste situação tem-se o emprego da instrução DAA; Somando-se dois números em BCD o resultado fica no Acumulador e a instrução DAA faz a correção se necessário; Em quais condições é realizada a correção; Se o nibble menos significativo for maior que 9; Se a Flag de Auxiliar Carry for igual a 1; Se o nibble mais significativo for maior que 9; Se a Flag de Carry for igual a 1. Para a correção adiciona-se ao Acumulador os valores 00H, 06H, 60H ou 66H, dependendo do valor do acumulador após a adição e das condições das Flags AC e CY . 26 Instruções Aritméticas. DAD RP O Conteúdo do par de registrador (RP) é adicionado ao par H (HL). O Resultado fica armazenado no par H (HL); O par de registradores RP pode ser: B (BC), D (DE), H (HL) e SP (SPH SPL); Somente a Flag de Carry (CY) é afetada. 27 Instruções Aritméticas. INR Reg O conteúdo do registrador (Reg) é incrementado de 1; O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L); Exceto a Flag carry (CY), todas as outras são afetadas. Exemplo: INR B 28 Instruções Aritméticas. INR M O conteúdo da memória endereçada pelo par H (HL) é incrementado de 1; Exceto a Flag carry (CY), todas as outras são afetadas. Exemplo: INR M 29 Instruções Aritméticas. DCR Reg O conteúdo do registrador (Reg) é decrementado de 1; O registrador Reg pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L); A operação de decremento é realizada subtraindo-se 01H do registrador Reg. Exceto a Flag carry (CY), todas as outras são afetadas. Exemplo: DCR D 30 Instruções Aritméticas. DCR M O conteúdo da memória endereçada pelo par H (HL) é decrementada de 1; Exceto a Flag carry (CY), todas as outras são afetadas. Exemplo: DCR M 31 Instruções Aritméticas. INX RP O Conteúdo do par de registrador (RP) é incrementado de 1; O par de registradores RP pode ser: B (BC), D (DE), H (HL) e SP (SPH SPL); Nenhuma Flag é afetada. Exemplo: INX H 32 Instruções Aritméticas. DCX RP O Conteúdo do par de registrador (RP) é decrementado de 1; O par de registradores RP pode ser: B (BC), D (DE), H (HL) e SP (SPH SPL); Nenhuma Flag é afetada. Exemplo: DCX SP 33 Aula do dia 26 de outubro de 2021 Exercícios Resolução de exercícios com o emprego do simulador; 34