aula 4 conjunto de instruções do microprocessador 8085 ......4.5.2 - exemplos de programas -...
TRANSCRIPT
Microprocessadores I
Aula 4
Conjunto de Instruções do Microprocessador
8085
Grupo Aritmético
4.1 - Grupos de Instruções
As instruções no 8085 são distribuídas em 5 grupos:
1. Grupo de transferência da dados: Move dados entre registradores
ou posição de memória e registradores;
2. Grupo Aritmético: Adição, subtração, Incrementos, decremento;
3. Grupo Lógico: AND, OR, XOR, Comparação, Rotação,
Complemento;
4. Grupo de Desvio: Condicionais, Incondicionais, Subrotinas;
5. Grupo de Controle, Pilha, Entrada e Saída.
4.2 - Instruções Lógicas e Aritméticas
Operaçoes Lógicas e Aritméticas são realizadas na Unidade Lógica e
Aritmética (ULA).
O Acumulador (Registrador A) e dois Registradores Temporários (W e Z)
estão conectados diretamente à ULA.
• Um dos operandos: Acumulador
• Segundo operando: vem de B, C, D, E, H, L ou da memória e passa é
armazenado no registrador temporário.
• O resultado da operação é armazenado no Acumulador.
4.3 - Registradores de FLAGS
Operação na ULA, pode afetar os bits de flags.
FLAGS: Bits de estados que são setados ou zerados conforme sua função e e ficam armazenados no Registrador F
FLAGS
CY = Carry P = Parity AC = Auxiliar Carry
Z = Zero S = Signal
Flags podem ser utilizados para o controle e desvio de programas através de determinadas instruções.
4.3.1 – Flag Carry : CY
Carry => É setado (nível lógico 1) quando o resultado da operação é um
número maior que 8 bits. Indica um Overflow (Estouro).
Caso contrário ele é zerado.
Exemplo: FFH + 11H = 10H e CY = 1
4.3.2 – FLAG Paridade – Parity : P
PARITY => É setado (1) quando o resultado de uma operação produz um
valor com quantidade PAR de bits “1”.
Caso contrário assume valor zero (0).
Exemplo: 0EH + 01H = 0FH. P = 1
0FH = 0000 1111B
4.3.3 – FLAG Auxiliar Carry: AC
AUXILIAR CARRY => É setado quando há um VAI-UM do quarto para o
quinto bit. Caso contrário é zerado.
Exemplo: 05H + 0CH = 11H. AC = 1
4.3.4 – FLAG Zero - Z
ZERO => Assume valor “1” quando uma operação resulta em um valor
ZERO. Caso contrário assume “0”.
Exemplo: FDH + 03H = 00H. Z = 1 e CY = 1.
4.3.5 – FLAG Sinal (Signal) : S
SIGNAL => Assume valor “1” quando o resultado de uma operação produz
um número maior que 7FH (operações com sinais).
4.4 - Instruções Aritméticas – Parte I
4.4 - Instruções Aritméticas – Parte 2
4.5 - Código de Operação - Instruções Aritméticas
3.3.1a - Código de Operação para as Instruções de Transferência
13
4.5.1 - Exemplos de Programas - Instruções Aritméticas
Indique a representação simbólica de cada
uma das instruções.
4.5.1 - Exemplos de Programas - Instruções Aritméticas
Converta o programa para linguagem de
máquina do 8085!
4.5.1 - Exemplos de Programas - Instruções Aritméticas
Qual o conteúdo dos registradores?
4.5.1 - Exemplos de Programas - Instruções Aritméticas
4.5.1 - Exemplos de Programas - Instruções Aritméticas
4.5.2 - Exemplos de Programas - Instruções Aritméticas
• Indique a representação simbólica de cada instrução.
• Obtenha o conteudo de todos os registradores e memória envolvida nas
operações.
4.5.2 - Exemplos de Programas - Instruções Aritméticas
Na operação de subtração em complemento de 2, o flag CY é o
complemento do carry.
Exemplo. 03 – 02
0000 0011
+ 1111 1110
-----------------
1 0000 0001 Resultado = 01 e CY = 0
4.5.2 - Exemplos de Programas - Instruções Aritméticas
Abacus
4.5.3 - Exemplos de Instruções Aritméticas
Exemplo: 0FH – 01H
0000 1111
+ 1111 1111
------------------
1 0000 1110 => Carry = 1, então CY = 0
Exemplo: 0CH – 12H
0000 1100
+ 1110 1110
------------------
0 1111 1010 => Carry = 0, então CY = 1
0000 0101 + 1 = - 0000 0110
4.5.3 - Exemplos de Instruções Aritméticas - ABACUS
Exemplo: 0CH – 12H
0CH = 0000 1100
12H = 0001 0010 C2(12H) = 1110 1110
0000 1100
+ 1110 1110
------------------
0 1111 1010 => (FA H)
Carry = 0, então CY = 1 (Negativo)
0000 0101 + 1 = - 0000 0110 (-5D)
4.5.4 - Exemplos de Instruções Aritméticas
• Indique a representação simbólica de cada
instrução.
• Obtenha o conteudo de todos os
registradores e memória envolvida nas
operações.
4.5.4 - Exemplos de Instruções Aritméticas
4.5.5 - Exemplos de Instruções Aritméticas
1. ADD B
(A) = 21H e (B) = 31H
2. ADD M
(H) = 20H, (L) = 33H, (A) = 21H, (2033H) = FFH
3. ADI 45
(A) = 21H
4. ADC B
(A) = 21H, (B) = 31H E CY = 1
5. ADC M
(A) = 21H, (H) = 20H, (L) = 33H, (2033H) = FF, CY = 1
4.5.6 - Exemplos de Instruções Aritméticas
6. SUB C
(A) = 31H, (C) = 21H E CY = 1
7 – SUB B
(A) = 21H, (B) = 31H E CY = 1
8. SBB M
(A) = 45H, (H) = 20H, (L) = 33H, (2033H) = FC, CY = 1
4.5.6 - Exemplos de Instruções Aritméticas
6. SUB C
(A) = 31H, (C) = 21H E CY = 1
(A) = 0F H (F) = S Z 0 AC 0 P 1 CY = 0 0 0 1 0 1 1 0 = 16 H
7 – SUB B
(A) = 21H, (B) = 31H E CY = 1
8. SBB M
(A) = 45H, (H) = 20H, (L) = 33H, (2033H) = FC, CY = 1
4.5.6 - Exemplos de Instruções Aritméticas
6. SUB C
(A) = 31H, (C) = 21H E CY = 1
(A) = 0F H (F) = S Z 0 AC 0 P 1 CY = 0 0 0 1 0 1 1 0 = 16 H
7 – SUB B
(A) = 21H, (B) = 31H E CY = 1
(A) = F0 (F) = S Z 0 AC 0 P 1 CY = 1 0 0 1 0 1 1 1 = 97 H
8. SBB M
(A) = 45H, (H) = 20H, (L) = 33H, (2033H) = FC, CY = 1
4.5.6 - Exemplos de Instruções Aritméticas
6. SUB C
(A) = 31H, (C) = 21H E CY = 1
(A) = 0F H (F) = S Z 0 AC 0 P 1 CY = 0 0 0 1 0 1 1 0 = 16 H
7 – SUB B
(A) = 21H, (B) = 31H E CY = 1
(A) = F0 (F) = S Z 0 AC 0 P 1 CY = 1 0 0 1 0 1 1 1 = 97 H
8. SBB M
(A) = 45H, (H) = 20H, (L) = 33H, (2033H) = FC, CY = 1(A) = 48 (F) = S Z 0 AC 0 P 1 CY = 0 0 0 0 0 1 1 1 = 07 H