Você está na página 1de 4

Instituto Superior de Cincias do Trabalho e da Empresa Arquitectura de Computadores 1 poca

Engenharia das Telecomunicaes e Informtica Informtica e Gesto de Empresas


Justifique todas as respostas.

07/Jan/2010 Durao: 2 horas + 30 m (tolerncia)

1. Considere um sistema de 8 bits em que se usa o complemento para dois para representar a informao [2 valores]: a) Qual a representao em binrio do nmero 25 ? b) Qual a representao em binrio do nmero -25 ? c) Some os nmeros referidos nas alneas a) e b) e mostre que o seu resultado d 0. d) Subtrai-a o nmero referido na alnea a) pelo nmero referido na alnea b) e mostre que o resultado d 50. Para efectuar a subtraco use o complemento para dois. 2. Considere uma funo lgica de 4 variveis A, B, C e D. Os termos mnimos 4, 5, 7, 12 e 13 produzem 1 no valor da funo, enquanto que o valor da funo para os termos mnimos 1, 2 e 3 indiferente. Os restantes termos mnimos produzem zero no valor da funo [3 valores]: a) Obtenha a expresso algbrica simplificada e desenhe o circuito respectivo. b) Qual o resultado da funo para 0001 e 0010 ? Comente. c) Desenhe o circuito correspondente expresso simplificada com portas NANDs. 3. Considere um circuito lgico constitudo por uma porta XOR com entradas A e B e sada S [3 valores]: a) Mostre algebricamente que se A=0 ento S=B e se A=1 ento S = B . b) Obtenha um circuito equivalente usando um multiplexer e a lgica adicional necessria. c) Obtenha um circuito equivalente usando um descodificador e a lgica adicional necessria. 4. Considere o seguinte DTE incompleto [3 valores = 1 + 2]:
x=1;y=0 x=0;y=0 x=0;y=0

00/?

01/?

x=1;y=0

x=1;y=0

11/?

10/?

x=0;y=0

x=1;y=0

x=0;y=0

A1

a) Complete o diagrama de forma a que: 1) quando a varivel de entrada y ficar a 1 o circuito vai para o estado 00, independentemente do valor lgico da varivel de entrada x e do estado actual; 2) a sada do circuito fica com o valor lgico 1 no estado 00, enquanto nos outros estados a sada 0. b) Implemente o circuito sequencial correspondente com flip-flops D. 5. Considere o seguinte circuito sequencial constitudo por flip-flops JK [2 valores]:
Vcc J0 K0 Q0 Vcc J1 K1 Q1

Clock

a) Complete o seguinte diagrama temporal:

Clock Q0 Q1
b) Represente o DTE correspondente. 6. [2 valores] a) Considere uma memria ROM com palavras de 16 bits. Supondo que existem endereos de 0000000000 a 1111111111 qual a capacidade da memria em bytes ? b) Suponha que tem uma memria ROM com 4 palavras de 2 bits. Quais os valores armazenados nessa ROM de modo a poder usar esta memria para implementar uma porta AND e uma porta OR com duas entradas em ambas as portas? 7. [5 valores = 1 + 1 + 1 + 0.5 + 1.5] a) Faa um programa em Assembly do MAC-1 correspondente ao seguinte ciclo: for ( i=2; i<20 ; i+=2 ). b) Complete o seguinte programa em Assembly do MAC-1 de forma a colocar nas posies do vector v os valores 2, 4, 6 e 8. Utilize uma instruo de endereamento indirecto para escrever esses valores nas posies do vector v. jump main v: 0 0 0 0 j: 0 dv: 4 # dimenso do vector main:

A2

c) Considere o seguinte programa em Assembly do MAC-1 que chama uma funo que escreve um n de 0 a 9. Faa uma nova verso desta funo que escreve nmeros de 0 at 19.
jump main n: 9 zero: 0 main: lodd n push call escreve insp 1 halt lodl 1 addd zero stod 4094 retn

escreve:

d) Use a funo desenvolvida na alnea anterior para escrever no ecr os nmeros de 2 a 18. e) O seguinte programa em C escreve um n no ecr. Faa uma verso da funo f em Assembly do MAC-1. Admita que j existem funes para calcular a diviso por 10 e o resto da diviso por 10. Diga qual o contedo da pilha imediatamente antes de ser imprimido o primeiro algarismo.
main () { f(3709); } int f (int i) { if (i>10) f(i/10); print (i%10); }

A3

MAC-1 Lista de instrues

Instruo lodd x stod x addd x subd x

Descrio AC = M[x] M[x] = AC AC = AC + M[x] AC = AC M[x]

Significado load direct store direct add direct subtract direct

Endereamento directo

Endereamento imediato

loco x

AC = x

load constant

Saltos

jump x jzer x jnze x jpos x jneg x

PC = x if (AC==0) PC = x if (AC!=0) PC = x if (AC>=0) PC = x if (AC<0) PC = x

unconditional jump jump if zero jump if nonzero jump if positive or zero jump if negative

Endereamento local

lodl n stol n addl n subl n

AC = M[SP + n] M[SP + n] = AC AC = AC + M[SP + n] AC = AC M[SP + n]

load local store local add local subtract local

Procedimentos

call x retn

SP = SP 1; M[SP] = PC; PC = x PC = M[SP]; SP = SP + 1

call procedure return

Pilha

push pop desp n insp n

SP = SP 1; M[SP] = AC AC = M[SP]; SP = SP + 1 SP = SP n SP = SP + n

push onto stack pop from stack decrement SP increment SP

Endereamento indirecto

pshi popi

SP = SP 1; M[SP] = M[AC] M[AC] = M[SP]; SP = SP + 1

push indirect pop indirect

Terminar

halt

---

stop execution

Nota:

0 x 4095 0 n 255

A4