Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisão do Computador NEANDER Características: Largura de dados e endereços = 8 bits Tamanho da memória = 256 bytes Dados representados em complemento de 2 Isso tem efeito nos cálculos que envolvem a ULA Registradores Acumulador (AC) Apontador de programa (PC) Registrador de estado Códigos de condição N e Z Modos de endereçamento Apenas um: modo direto Formato das instruções Formadas por 1 ou 2 bytes código don't care endereço direto 7 34 0 Instruções Código Instrução Comentário Descrição 0000 NOP nenhuma operação nenhuma operação 0001 STA end MEM(end) ← AC armazena acumulador - (store) 0010 LDA end AC← MEM(end) carrega acumulador - (load) 0011 ADD end AC← MEM(end) + AC soma 0100 OR end AC← MEM(end) OR AC “ou” lógico 0101 AND end AC← MEM(end) AND AC “e” lógico 0110 NOT AC← NOT AC inverte (complementa) acumulador 1000 JMP end PC← end desvio incondicional - (jump) 1001 JN end IF N=1 THEN PC ← end desvio condicional - (jump on negative) 1010 JZ end IF Z=1 THEN PC ← end desvio condicional - (jump on zero) 1111 HLT término de execução - (halt) Códigos de Condição Código N Sinal do resultado 1, se resultado negativo 0, caso contrário Código Z Indica se o resultado vale 0 1, se resultado igual a zero 0, caso contrário Programação Passos da programação 1. Escrever o fluxograma a ser implementado 2. Escrever o programa simbólico 3. Listar as variáveis e constantes e os endereços associados 4. Codificar o programa simbólico 5. Escrever o programa no simulador 6. Testar o programa Exercícios Escrever um programa para calcular a diferença entre duas variáveis. Cada variável ocupa um byte. Além disso, o resultado deverá ser armazenado em uma terceira posição da memória. Pode-se usar: C=A+B e &A=80H, &B=81H e &C=82H. Faça um programa para escrever 00H em uma área de memória. O endereço inicial e o tamanho da área tem tamanho de 8 bits e estão armazenados em variáveis específicas. Pode-se usar: INICIO = início da área; TAMANHO = tamanho da área e &INICIO = 80H e &TAMANHO = 81H. Instruções NEANDER Código Instrução Operação N Z Descrição 0000 NOP Nenhuma operação nenhuma operação 0001 STA end MEM(end) ← AC armazena acumulador - (store) 0010 LDA end AC← MEM(end) • • carrega acumulador - (load) 0011 ADDend AC← MEM(end) + AC • • soma 0100 OR end AC← MEM(end) OR AC • • “ou” lógico 0101 ANDend AC← MEM(end) AND AC • • “e” lógico 0110 NOT AC← NOT AC • • inverte (complementa) acumulador 1000 JMP end PC← end desvio incondicional - (jump) 1001 JN end IF N=1 THEN PC ← end desvio condicional - (jump on negative) 1010 JZ end IF Z=1 THEN PC ← end desvio condicional - (jump on zero) 1111 HLT término de execução - (halt)
Compartilhar