EEL7030 - Microprocessadores - Prova teórica T1 2004/2 Prof. Hari Mohr Data: 14/09/2004 Nota: Aluno(a): __________________________________________ Turma: ____ Orientações gerais: não é permitido o uso de calculadora; a prova é sem consulta. Questão 1 Valor: 2.0 Nota: _______ a) Determine o valor hexadecimal da máscara necessária para realizar cada uma das operações abaixo e escreva fragmentos de código para o 8085 que executem as ações correspondentes. A1) Complementar os bits 0, 1, 4 e 5 do acumulador sem alterar os demais bits e nem os outros registradores; A2) Zerar os bits 2, 3, e 7 do registrador B sem alterar os demais bits e nem os outros registradores; b) Explique o que é uma diretiva e cite 3 exemplos. Questão 2 Valor: 2.0 Nota: _______ Para cada uma das afirmações seguintes, assinale V ou F, conforme considerar a afirmação verdadeira ou falsa. Para evitar o chute, cada resposta errada anula uma resposta certa. A opção em branco não é considerada. ( ) A região de memória da pilha só é acessada pelas instruções PUSH e POP. ( ) A máscara de bits “80H” pode ser usada para setar o bit mais significativo do acumulador se usada com a instrução ANI. ( ) O endereço de retorno das sub-rotinas é armazenado na pilha pela instrução CALL ( ) A pilha pode ser, em princípio, alocada em qualquer endereço de memória RAM ou EPROM, desde que não tenha conflito com a região de código de programa. ( ) As interrupções do 8085 tem prioridades de atendimento diferentes entre si, com TRAP sendo a mais prioritária. ( ) As interrupções do 8085 tem endereço fixo pré-definido de tratador para o seu atendimento. ( ) As instruções IN e OUT servem para acessar a memória comum usando endereços de 16 bits. ( ) Para o 8085, a forma mais eficiente de fazer a comunicação entre o programa principal e um tratador de interrupção é a passagem de valores através do acumulador. ( ) O número de posições de memória que um processador pode endereçar depende de quantos bits tem seu barramento de dados. ( ) O endereço de retorno das interrupções depende do tipo de interrupção Questão 3 Valor: 2.0 Nota: _______ Execute o programa a seguir desde o “CONT” até “AQUI”e preencha os valores finais das posições de memória alteradas e do Acumulador nos quadros da pagina seguinte. 2015 C5 CONT: PUSH B 1 2016 2019 201B 201E 201F CD 1B 20 16 04 CD 20 20 00 C9 2020 2022 2023 2024 3E 07 D5 A1 D1 2020 CALL Soma MVI D,4 Call Testa NOP RET Soma: Testa: MVI A,07H PUSH D ANA C POP D AQUI: 2025 C9 Registrador Valor inicial Valor final A 31 Memória Valor inicial Valor final 2030 03 B 23 2031 02 RET C 40 D 05 2032 01 Questão 4 E 34 2033 05 Flag HL 02 2017 2034 06 2035 08 SP 2039 2036 61 2037 62 2038 63 2039 64 Valor: 3.0 Nota: _______ O programa abaixo deve fazer o deslocamento de um LED aceso com velocidade controlado pelas chaves. O número de Interrupções TRAP ocorridas deve ser mostrado no campo de Dados a) Quais são os erros que impedem a execução correta do programa ? b) Qual a função das instruções marcadas com *1 ? O que pode acontecer se elas forem omitidas ? c) Qual a função das instruções marcadas com *2 ? O que pode acontecer se elas forem omitidas ? LOOP: VELOC: TTRAP: DADO SAIDA ORG 2000H LXI SP,2017H MVI A,18H SIM EI MVI A,02H OUT COMANDO MVI A,07H OUT LEDS STA SAIDA LDA SAIDA RLC OUT LEDS STA SAIDA IN CHAVES CPI 0 *1 JZ LOOP *1 MOV D,A CALL DELAY JMP LOOP PUSH PSW *2 LDA DADO INR B STA DADO CALL MOSTRAA EI POP PSW *2 RET DB 0 DB 0 ORG TRAP JMP TTRAP END 2