Pontifícia Universidade Católica do Rio Grande do Sul
Arquitetura de Computadores I - Prova P1 - 09/09/97
Prof. Eduardo Augusto Bezerra
Aluno: ______________________________________________
1. Sabendo-se que entre os endereços AAH e FFH da memória da ARQ1 existe um texto em ASCII, escrever um programa em linguagem assembly, para esta arquitetura, que converta todas as letras minúsculas do texto para maiúsculas. ATENÇÃO !! O programa deverá converter apenas os caracteres minúsculos. Os demais deverão permanecer inalterados. (6.5 pontos)
Obs:
2. Após a execução do programa abaixo na ARQ1 (valores negativos em complemento de 2) determinar:
end. | instrução e operando | ---------- | end. | instrução e operando |
00 | LDA A5H | 12 | LDA 0AH | |
02 | OR 5AH | 14 | ADD 01H | |
04 | NOT | 16 | OR 22H, D | |
05 | ADD 05H | 18 | NOT | |
07 | STA 22H, D | 19 | LDA 22H | |
09 | ADD FFH | 1B | STA FFH, D | |
0A | JZ 02, R | 1D | LDA 22H, D | |
0C | JMP 10H | 1F | JMP 09H | |
0E | JMP 20H | 20 | HLT | |
10 | STA 22H, D |
Arquitetura hipotética ARQ1
Memória (conjunto de registradores): registradores de 8 bits - AC, PC e RS; e flags de 1 bit - carry C, negativo N e Zero ZR
Modos de Endereçamento:
Conjunto de instruções:
Código |
Mnemônico |
Operação |
000x |
NOT |
Complementa AC |
001x |
STA end |
Armazena AC na posição end de memória |
0100 |
LDA end |
Carrega AC com conteúdos da posição end |
0101 |
ADD end |
Adiciona AC aos conteúdos da posição end |
0110 |
OR end |
Faz OU de AC com conteúdos da posição end |
0111 |
AND end |
Faz E de AC com conteúdos da posição end |
1000 |
JMP end |
PC recebe end |
1001 |
JC end |
Se C=1 então PC recebe end |
1010 |
JN end |
Se N=1 então PC recebe end |
1011 |
JZ end |
Se ZR=1 então PC recebe end |
1100 |
JSR end |
RS recebe conteúdos de PC, PC recebe end |
1101 |
RTS |
PC recebe conteúdos de RS |
111x |
HLT |
Termina ciclo de busca e execução |
Observações: end - Operando que depende do modo de endereçamento para ser determinado; Instruções de desvio - nestas, os modos imediato e direto possuem o mesmo efeito; Instruções lógicas (NOT, AND e OR) e LDA - afetam os códigos de condição N e ZR; ADD - Afeta N, ZR, C; Instruções restantes (STA, JMP, JC, JN, JZ, JSR, RTS HLT) - Não alteram códigos de condicão.
Formatos de Instrução:
Existem dois tipos de instrução: de 1 endereço; e sem endereço. Instruções de 1 endereço ocupam dois bytes de memória de programa, enquanto que instruções sem endereço ocupam apenas 1 byte. O opcode compõe-se de 4 bits que especificam a instrução, seguido de dois bits para o modo de endereçamento e dois bits constantemente em 0. Esquematicamente, temos, para cada primeira palavra (8 bits) de uma instrução:
instrução |
modo de endereçamento |
constante |
XXXX |
XX |
00 |