Baixe o app para aproveitar ainda mais
Prévia do material em texto
UERJ ENGENHARIA DE SISTEMAS E COMPUTAÇÃO 17/06/10 2a Prova (P2) DE FUNDAMENTOS DE COMPUTADORES DIGITAIS I ALUNO: ........................................................................................................................................... 1a QUESTÃO (3,0 pontos) : O mapa de memória abaixo representa uma área de dados para ser utilizada por um programa escrito em Assembly Z80. Nesta área estão 2 Blocos de Memória, BLOC1 e BLOC2, com, respectivamente, 200 e 100 posições, uma mensagem (“Amo Z80!”) e alguns bytes. XX indica que o conteúdo de memória, naquela posição, não deve ser inicializado, apenas o espaço deve ser reservado. Todos os valores indicados no mapa de memória são hexadecimais. Pede-se a codificação de um trecho do programa em Assembly Z80, que declare esta área, usando-se labels (rótulos) e diretivas (pseudo- instruções ORG, DEFS, DEFB, DEFW, etc). Nota: O valor ASCII de um caracter P, por exemplo, pode ser representado por 'P', bem como os valores ASCII de uma cadeia de caracteres c1c2...cn podem ser representados por 'c1c2...cn' . endereços conteúdos labels 16A0 XX BLOC1 XX . . . XX XX BLOC2 XX . . . XX ‘A‘ MENS ‘M‘ ‘O‘ ‘‘ ‘Z‘ 8 0 ‘!‘ ‘$‘ 30 CONSTAN FF 12 07 CB 2a QUESTÃO (3,0 pontos) : Seja o trecho de programa, em Assembly Z-80, contido na coluna "Listagem" do Quadro abaixo. Complete a coluna "Montagem" com os endereços das instruções na Memória Principal e os códigos de máquina (objeto) das mesmas. Em seguida, complete a coluna "Execução", escrevendo os valores assumidos pelos registradores e flags, após a execução de cada instrução. Utilize sempre a representação hexadecimal. O primeiro conjunto de valores da coluna "Execução" representa os conteúdos, em hexadecimal, dos registradores e flags, imediatamente antes da busca e execução da instrução RR C. LISTAGEM MONTAGEM EXECUÇÃO END. CÓD. PC SP A B C D E H L P/V CY Z S 1900 1A68 28 00 07 60 A0 18 52 1 0 1 0 SEGUE EQU 1960H RL C 1900 CB01 1902 1A68 28 00 0D 60 A0 18 52 1 0 0 0 CP 70H 1902 FE70 1904 1A68 70 00 0D 60 A0 18 52 1 0 0 0 JP C, SEGUE 1904 DA1960 1907 1A68 70 00 0D 60 A0 18 52 1 0 0 0 3a QUESTÃO (4,0 pontos) : Escrever uma subrotina, em Assembly Z-80, que procura o byte de maior valor num Bloco de Memória com 100 bytes não-sinalizados, cujo início é apontado por DE. A subrotina, que deverá se chamar MAXBYTE, coloca o valor do maior byte imediatamente depois do fim do Bloco. A subrotina deve manter o contexto em que foi chamada, isto é, deverá retornar sem alterar os conteúdos dos registradores e flags.
Compartilhar