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:

<clique aqui para uma possível solução>


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

<clique aqui para a solução>


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