37
Microprocessadores
UNESP
39
Microprocessadores
UNESP
16
Microprocessadores
UNESP
34
Microprocessadores
UNESP
35
Microprocessadores
UNESP
27
Microprocessadores
UNINTER
19
Microprocessadores
USU
3
Microprocessadores
UFC
2
Microprocessadores
UFC
7
Microprocessadores
UNINTER
Texto de pré-visualização
- Modos de Endereçamentos e Instruções de Transferência de Dados 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 - Barramentos - Acesso a Memória Figura: CPU - 8085 e Barramentos Figura: Busca de Instruções (Programa / Dados) 1 Endereços de Programa / Dados - Registradores Figura: Memória de Programa e Dados Figura: Registradores 2 Não é relevante para o programador Figura: Código dos Registradores Figura: Busca de Instruções (Programa / Dados) 3 Formatos das Instruções do 8085. Instruções de 1 byte. Instruções de 2 bytes. Instruções de 3 bytes. 4 Formatos das Instruções do 8085. Instruções de 1 byte. ADD B MOV D, L INX H 5 Formatos das Instruções do 8085. Instruções de 2 bytes. MVI B, 33H ADI 45H OUT 22H 6 Formatos das Instruções do 8085. Instruções de 3 bytes. LXI B, 2050H JMP 2090H LHLD 2030H 7 Modos de Endereçamentos. Endereçamento Direto; Endereçamento Imediato; Endereçamento por Registrador; Endereçamento Indireto por Registrador; Endereçamento Implícito. 8 Modos de Endereçamentos. Endereçamento Direto: O endereço que contém o dado é especificado na própria instrução. O dado pode estar em memória ou I/O. LDA 2045H => Move o dado contido na memória de endereço 2045H para o Acumulador; IN 21H => Move o dado contido no port de endereço 21H para o Acumulador. 9 Modos de Endereçamentos. Endereçamento Imediato: O operando (dado) é especificado na própria instrução, ou seja, o dado é parte (1 byte) da instrução. O endereço do operando não é especificado MVI B,3EH => Move o dado (3EH) para o registrador B; ADI 32H => Adiciona o dado (32H) ao conteúdo do acumulador. 10 Modos de Endereçamentos. Endereçamento por Registrador: A instrução especifica o nome do registrador onde o operando (dado) está disponível. MOV B,H => Copia o conteúdo do registrador H (dado) para o registrador B; ADD B => Adiciona o conteúdo do registrador B com o conteúdo do Acumulador. 11 Modos de Endereçamentos. Endereçamento Indireto por Registrador: A instrução especifica o nome do par de registradores onde o endereço do operando (dado) está disponível. MOV B,M => Copia o conteúdo da memória cujo endereço está no par H (HL) para o registrador B; LDAX D => Copia para o Acumulador o conteúdo da memória cujo endereço está no par D (DE). 12 Modos de Endereçamentos. Endereçamento Implícito: Nesta instrução o operando está implícito. CMA => Complementa o conteúdo do Acumulador; RAL => Rotaciona para a esquerda o conteúdo do Acumulador. 13 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. 14 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. 15 Instruções de Transferência de dados. MOV Rd,Rs O conteúdo do registrador Rs (Origem) é copiado para o registrador Rd (Destino). Os registradores Rd e Rs podem ser quaisquer registradores de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV B,C Antes da execução da instrução. Depois da execução da Instrução. 16 Instruções de Transferência de dados. MOV Rd,M O conteúdo da Memória (M) - Origem, endereçada pelo par H (HL) é copiado para o registrador Rd (Destino). O registrador Rd pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV A,M Antes da execução da instrução. Depois da execução da instrução. 17 Instruções de Transferência de dados. MOV M,Rs O conteúdo do registrador Rs (Origem) é copiado para a memória endereçada pelo par H (HL) - Destino. O registrador Rs pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV M,B Antes da execução da instrução. Depois da execução da instrução. 18 Instruções de Transferência de dados. MVI Rd,d8 O dado de 8 bits (d8) especificado na instrução e copiado para o registrador Rd (Destino). O registrador Rd pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MVI D, 09H Antes da execução da instrução. Depois da execução da instrução. 19 Instruções de Transferência de dados. MVI M,d8 O dado de 8 bits (d8) especificado na instrução e copiado para a memória (Destino) endereçado pelo par H (HL). Nenhuma Flag é alterada. Exemplo: MVI M, E7H Antes da execução da instrução. Depois da execução da instrução. 20 Instruções de Transferência de dados. LDA addr16 O conteúdo da memória cujo endereço está especificado na instrução é copiado para o Acumulador (Registrador A). Nenhuma Flag é alterada. Exemplo: LDA 205DH Antes da execução da instrução. Depois da execução da instrução. 21 Instruções de Transferência de dados. LHLD addr16 O conteúdo da memória cujo endereço é especificado na instrução é copiado para o registrador L. O conteúdo da memória seguinte é copiado para o registrador H. Nenhuma Flag é alterada. Exemplo: LHLD 1050H Antes da execução da instrução. Depois da execução da instrução. 22 Instruções de Transferência de dados. LXI rp,d16 O dado de 16 bits especificado na instrução é copiado para o par de registrador. Os pares de registradores podem ser: par B (BC), par D (DE), par H (HL) e SP (SPH - SPL). Nenhuma Flag é alterada. Exemplo: LXI H, 1050H Antes da execução da instrução. Depois da execução da instrução. 23 Instruções de Transferência de dados. LDAX rp O conteúdo da memória endereçada pelo par de registradores (rp) é copiado para o Acumulador. Os pares de registradores podem ser B (BC) ou D (DE). Nenhuma Flag é alterada. Exemplo: LDAX B Antes da execução da instrução. Depois da execução da instrução. 24 Instruções de Transferência de dados. STA Addr16 O conteúdo do Acumulador é copiado para a memória cujo endereço está especificado na instrução. Nenhuma Flag é alterada. Exemplo: STA 2050H Antes da execução da instrução. Depois da execução da instrução. 25 Instruções de Transferência de dados. STAX rp O conteúdo do Acumulador é copiado para a memória cujo endereço está especificado no par rp. Os pares de registradores podem ser B (BC) ou D (DE). Nenhuma Flag é alterada. Exemplo: STAX D Antes da execução da instrução. Depois da execução da instrução. 26 Instruções de Transferência de dados. SHLD addr16 O conteúdo do registrador L é copiado para a memória cujo endereço está especificado na instrução. O Conteúdo do registrador H é copiado para o próximo endereço de memória. Nenhuma Flag é alterada. Exemplo: SHLD 305AH Antes da execução da instrução. Depois da execução da instrução. 27 Instruções de Transferência de dados. SPHL O conteúdo do par H (HL) é copiado para o registrador SP - Ponteiro de Pilha (Stack Pointer) Nenhuma Flag é alterada. Exemplo: SPHL Antes da execução da instrução. Depois da execução da instrução. 28 Instruções de Transferência de dados. XCHG O conteúdo dos pares de registradores H (HL) e D (DE) são trocados. Nenhuma Flag é alterada. Exemplo: XCHG Antes da execução da instrução. Depois da execução da instrução. 29 Instruções de Transferência de dados. XTHL O conteúdo do topo da Pilha (Stack), dois bytes, é trocado com o conteúdo do par H (HL). Nenhuma Flag é alterada. Exemplo: XTHL Antes da execução da instrução. Depois Antes da execução da instrução. 30 Instruções de Transferência de dados. As seguintes instruções serão abordadas futuramente. PUSH rp; POP rp; IN Addr8; OUT Addr8. Exercícios envolvendo instruções para transferência de dados. 31
37
Microprocessadores
UNESP
39
Microprocessadores
UNESP
16
Microprocessadores
UNESP
34
Microprocessadores
UNESP
35
Microprocessadores
UNESP
27
Microprocessadores
UNINTER
19
Microprocessadores
USU
3
Microprocessadores
UFC
2
Microprocessadores
UFC
7
Microprocessadores
UNINTER
Texto de pré-visualização
- Modos de Endereçamentos e Instruções de Transferência de Dados 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 - Barramentos - Acesso a Memória Figura: CPU - 8085 e Barramentos Figura: Busca de Instruções (Programa / Dados) 1 Endereços de Programa / Dados - Registradores Figura: Memória de Programa e Dados Figura: Registradores 2 Não é relevante para o programador Figura: Código dos Registradores Figura: Busca de Instruções (Programa / Dados) 3 Formatos das Instruções do 8085. Instruções de 1 byte. Instruções de 2 bytes. Instruções de 3 bytes. 4 Formatos das Instruções do 8085. Instruções de 1 byte. ADD B MOV D, L INX H 5 Formatos das Instruções do 8085. Instruções de 2 bytes. MVI B, 33H ADI 45H OUT 22H 6 Formatos das Instruções do 8085. Instruções de 3 bytes. LXI B, 2050H JMP 2090H LHLD 2030H 7 Modos de Endereçamentos. Endereçamento Direto; Endereçamento Imediato; Endereçamento por Registrador; Endereçamento Indireto por Registrador; Endereçamento Implícito. 8 Modos de Endereçamentos. Endereçamento Direto: O endereço que contém o dado é especificado na própria instrução. O dado pode estar em memória ou I/O. LDA 2045H => Move o dado contido na memória de endereço 2045H para o Acumulador; IN 21H => Move o dado contido no port de endereço 21H para o Acumulador. 9 Modos de Endereçamentos. Endereçamento Imediato: O operando (dado) é especificado na própria instrução, ou seja, o dado é parte (1 byte) da instrução. O endereço do operando não é especificado MVI B,3EH => Move o dado (3EH) para o registrador B; ADI 32H => Adiciona o dado (32H) ao conteúdo do acumulador. 10 Modos de Endereçamentos. Endereçamento por Registrador: A instrução especifica o nome do registrador onde o operando (dado) está disponível. MOV B,H => Copia o conteúdo do registrador H (dado) para o registrador B; ADD B => Adiciona o conteúdo do registrador B com o conteúdo do Acumulador. 11 Modos de Endereçamentos. Endereçamento Indireto por Registrador: A instrução especifica o nome do par de registradores onde o endereço do operando (dado) está disponível. MOV B,M => Copia o conteúdo da memória cujo endereço está no par H (HL) para o registrador B; LDAX D => Copia para o Acumulador o conteúdo da memória cujo endereço está no par D (DE). 12 Modos de Endereçamentos. Endereçamento Implícito: Nesta instrução o operando está implícito. CMA => Complementa o conteúdo do Acumulador; RAL => Rotaciona para a esquerda o conteúdo do Acumulador. 13 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. 14 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. 15 Instruções de Transferência de dados. MOV Rd,Rs O conteúdo do registrador Rs (Origem) é copiado para o registrador Rd (Destino). Os registradores Rd e Rs podem ser quaisquer registradores de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV B,C Antes da execução da instrução. Depois da execução da Instrução. 16 Instruções de Transferência de dados. MOV Rd,M O conteúdo da Memória (M) - Origem, endereçada pelo par H (HL) é copiado para o registrador Rd (Destino). O registrador Rd pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV A,M Antes da execução da instrução. Depois da execução da instrução. 17 Instruções de Transferência de dados. MOV M,Rs O conteúdo do registrador Rs (Origem) é copiado para a memória endereçada pelo par H (HL) - Destino. O registrador Rs pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MOV M,B Antes da execução da instrução. Depois da execução da instrução. 18 Instruções de Transferência de dados. MVI Rd,d8 O dado de 8 bits (d8) especificado na instrução e copiado para o registrador Rd (Destino). O registrador Rd pode ser qualquer registrador de uso geral (A, B, C, D, E, H e L). Nenhuma Flag é alterada. Exemplo: MVI D, 09H Antes da execução da instrução. Depois da execução da instrução. 19 Instruções de Transferência de dados. MVI M,d8 O dado de 8 bits (d8) especificado na instrução e copiado para a memória (Destino) endereçado pelo par H (HL). Nenhuma Flag é alterada. Exemplo: MVI M, E7H Antes da execução da instrução. Depois da execução da instrução. 20 Instruções de Transferência de dados. LDA addr16 O conteúdo da memória cujo endereço está especificado na instrução é copiado para o Acumulador (Registrador A). Nenhuma Flag é alterada. Exemplo: LDA 205DH Antes da execução da instrução. Depois da execução da instrução. 21 Instruções de Transferência de dados. LHLD addr16 O conteúdo da memória cujo endereço é especificado na instrução é copiado para o registrador L. O conteúdo da memória seguinte é copiado para o registrador H. Nenhuma Flag é alterada. Exemplo: LHLD 1050H Antes da execução da instrução. Depois da execução da instrução. 22 Instruções de Transferência de dados. LXI rp,d16 O dado de 16 bits especificado na instrução é copiado para o par de registrador. Os pares de registradores podem ser: par B (BC), par D (DE), par H (HL) e SP (SPH - SPL). Nenhuma Flag é alterada. Exemplo: LXI H, 1050H Antes da execução da instrução. Depois da execução da instrução. 23 Instruções de Transferência de dados. LDAX rp O conteúdo da memória endereçada pelo par de registradores (rp) é copiado para o Acumulador. Os pares de registradores podem ser B (BC) ou D (DE). Nenhuma Flag é alterada. Exemplo: LDAX B Antes da execução da instrução. Depois da execução da instrução. 24 Instruções de Transferência de dados. STA Addr16 O conteúdo do Acumulador é copiado para a memória cujo endereço está especificado na instrução. Nenhuma Flag é alterada. Exemplo: STA 2050H Antes da execução da instrução. Depois da execução da instrução. 25 Instruções de Transferência de dados. STAX rp O conteúdo do Acumulador é copiado para a memória cujo endereço está especificado no par rp. Os pares de registradores podem ser B (BC) ou D (DE). Nenhuma Flag é alterada. Exemplo: STAX D Antes da execução da instrução. Depois da execução da instrução. 26 Instruções de Transferência de dados. SHLD addr16 O conteúdo do registrador L é copiado para a memória cujo endereço está especificado na instrução. O Conteúdo do registrador H é copiado para o próximo endereço de memória. Nenhuma Flag é alterada. Exemplo: SHLD 305AH Antes da execução da instrução. Depois da execução da instrução. 27 Instruções de Transferência de dados. SPHL O conteúdo do par H (HL) é copiado para o registrador SP - Ponteiro de Pilha (Stack Pointer) Nenhuma Flag é alterada. Exemplo: SPHL Antes da execução da instrução. Depois da execução da instrução. 28 Instruções de Transferência de dados. XCHG O conteúdo dos pares de registradores H (HL) e D (DE) são trocados. Nenhuma Flag é alterada. Exemplo: XCHG Antes da execução da instrução. Depois da execução da instrução. 29 Instruções de Transferência de dados. XTHL O conteúdo do topo da Pilha (Stack), dois bytes, é trocado com o conteúdo do par H (HL). Nenhuma Flag é alterada. Exemplo: XTHL Antes da execução da instrução. Depois Antes da execução da instrução. 30 Instruções de Transferência de dados. As seguintes instruções serão abordadas futuramente. PUSH rp; POP rp; IN Addr8; OUT Addr8. Exercícios envolvendo instruções para transferência de dados. 31