Beruflich Dokumente
Kultur Dokumente
3 MQUINA RUDIMENTARIA 34
Lenguaje mquina 34
Unidad de proceso 37
Unidad de Control 38
Ejecucin de instrucciones 39
1
1 PROBLEMAS DE SISTEMAS LGICOS COMBINACIONALES
1.1 Juan se ha examinado de tres asignaturas. Sus amigos han visto los resultados y se los han
comentado:
1.2 Determina qu pares de funciones son equivalentes, utilizando las propiedades del lgebra de
Boole y/o mediante tablas de verdad:
G(x,y,z,w)=yw + xy + yw
b) F(x,y,z,w)=xy + yw + xw
1.5 Usando slo una puerta NOR del nmero de entradas que haga falta y las puertas NOT que
creas necesarias, disea un circuito que realice una AND de tres entradas.
2
d) FA1216 a decimal
e) 134510 a binari natural
f) 10010110011002 a hexadecimal
1.7 Cul es el rango de nmeros representables con 6 bits codificados en binario natural? Y en
Complemento a 2 (Ca2)?
a) Representeu en complement a 2 amb 8 bits els segents nmeros: 79, -12 i 145.
b) Apliqueu lalgorisme de canvi de signe als nmeros 79 i 12 per tal dobtenir la
representaci del 79 i del 12
a) naturales.
b) enteros en complemento a dos.
1.10 Suposant que treballem en complement a 2 i els nmeros es representen amb 6 bits,
3
1.11 Contesta a las siguientes preguntas:
1.12 Realitza la suma dels segents nmeros naturals, representats en les bases indicades, amb el
mateix nombre de dgits amb els que sexpressen. Indica si es produeix transport (Carry) i/o
sobreeiximent (overflow).
011100
+111000
1010100
Suposant que tant els operands com el resultat sn nmeros de 6 bits, digueu quins valors
tenen els operands i el resultat en base 10 en els casos segents:
a) considerant que els nmeros estan codificats en binari natural.
b) considerant que els nmeros estan codificats en complement a 2.
1.14 Realitzeu les segents operacions amb nmeros de 8 bits representats en complement a 2:
a) 6310 + (-12010)
b) 6310 + 12010
4
1.16 Haz la tabla de verdad de un sumador completo de un bit (tres bits de entrada y dos de salida)
1.17 Haz la tabla de verdad de un sistema que visualice las letras vocales en un display de 5 segmentos
como el de la figura. Las vocales han de iluminarse en el visualizador segn la siguiente
codificacin de X: A con 0, E con 1, I con 2, O con 3 y U con 4. No es posible que aparezcan en la
entrada valores de X superiores a 4.
1.18 Realiza la tabla de verdad de un sistema lgico combinacional que, dado un nmero entero X de
cuatro bits codificado en signo/magnitud, d como salida otro nmero entero Y codificado de la
misma forma, segn la formula indicada en la figura:
Y=INT 3*X 1
2
X S.L.C.
V
El sistema dispondr de un bit V que valdr 1 cuando el resultado no se pueda representar con
cuatro bits.
Nota: La funcin INT devuelve la parte entera por defecto.
1.19 El popular conjunt musical "Nedant i guardant la roba" ens ha encarregat el disseny duna part de
la illuminaci de lespectacle de la seva nova gira mundial. En particular, desitgen sincronitzar
diferents grups de llums amb la msica, per a la qual cosa disposen duna bateria sintetitzada que
envia quatre senyals a travs dels seus sensors S1, S2, S3 i S4.
A partir del valor daquests quatre sensors, el sistema genera diferents funcions de sortida
(F1, F2 i F3) que sactiven de la segent manera:
F1 sactiva quan el sensor S4 est activat i hi ha un nombre imparell duns en S1, S2 i S3 (el
zero es considera un nmero parell).
F2 sactiva quan S4 est activat i hi ha algun altre '1' present a les entrades.
F3 sactiva en cas que hi hagi com a mnim dos zeros presents a les entrades i el senyal F1
estigui desactivat.
Fes la taula de veritat del circuit.
5
1.20 La iluminacin de una discoteca se compone de una combinacin de luces de tres colores (rojo,
azul y verde) y de un rayo lser. Se quiere disear un sistema combinacional que controle estas
luces a partir de cuatro conmutadores (A, B, C, D) y de un interruptor general E.
E ROJO
A AZUL
B S.L.C. VERDE
C LSER
D
El interruptor general E hace que el sistema acte (cuando vale '1') o que el sistema est
desconectado (cuando vale '0').
La luz roja se enciende siempre que est pulsado el conmutador A, o siempre que est
pulsado B pero no lo est C.
La luz azul no se enciende si A no est conectado o si lo estn B o D.
La luz verde se enciende si no est pulsado C, o si no lo est A y s B, o si est pulsado D.
El rayo lser se pone en funcionamiento cuando hay un nmero impar de luces encendidas.
1.21 Haz la tabla de verdad de un sistema lgico combinacional que, dado un nmero de entrada de
cuatro bits, que es un entero representado en complemento a dos, genere la parte entera por
defecto de su divisin entre tres.
4 3
A S.L.C. A
3
6
Problemes danlisi i sntesi a dos nivells
P
R
Q S
1.24 Analiza los circuitos combinacionales siguientes y expresa en forma de suma de minterms la
funcin que implementan. Sintetiza, si es posible, un circuito ms sencillo que implemente la
misma funcin:
7
a)
W
Y
W
X
F
Z
X Y
b)
W
Y
W
Y
F
X
Z
X
Z
c)
W
X
F
W
Y
8
1.26 Dada la funcin lgica siguiente:
1.27 Un procs qumic t tres indicadors de temperatura sobre un punt P determinat, les sortides dels
quals T1, T2, i T3, adopten dos nivells de tensi segons la temperatura sigui menor, major o igual
que unes determinades constants t1, t2 i t3 respectivament (t1 < t2 < t3).
T1 = 1 si t > t1 T1 = 0 si t t1
Procs S
Circuit
Qumic
1.28 Juan tiene una planta muy delicada, por eso necesita un sistema de riego con control de la
temperatura y de la humedad. El sistema combinacional tiene tres entradas y dos salidas.
Entradas:
Salidas:
9
Las especificaciones del sistema son:
La planta se riega siempre que la tierra se seca, es decir, siempre que no se supera el lmite
h0.
Tambin se riega cuando la temperatura T supera el lmite t0 y la humedad de la tierra es
inferior a h1.
La tierra de la planta se calienta cuando la temperatura T es inferior a t0 y la humedad es
superior a h0.
1.30 El popular conjunt musical "Nedant i guardant la roba" ens ha encarregat el disseny duna part de
la illuminaci de lespectacle de la seva nova gira mundial. En particular, desitgen sincronitzar
diferents grups de llums amb la msica, per a la qual cosa disposen duna bateria sintetitzada que
envia quatre senyals a travs dels seus sensors S1, S2, S3 i S4.
A partir del valor daquests quatre sensors, el sistema genera diferents funcions de sortida
(F1, F2 i F3) que sactiven de la segent manera:
F1 sactiva quan el sensor S4 est activat i hi ha un nombre imparell duns en S1, S2 i S3 (el
zero es considera un nmero parell).
F2 sactiva quan S4 est activat i hi ha algun altre '1' present a les entrades.
F3 sactiva en cas que hi hagi com a mnim dos zeros presents a les entrades i el senyal F1
estigui desactivat.
10
1.31 Dado un multiplexor como el de la figura, escribe la expresin algebraica de F.
I3 +
I2
F
I1
I0
- + -
C1 C0
E0
0 0
E1
X1 1 1 1
F
X0 E2
2 2
X3 0
E3
3 3
1 0
X 3X 2
a) Troba les expressions algebraiques dEi (i=0,1,2,3) en funci dx3, x1 i x0 (no fa falta que les
minimitzis).
b) Escriu la taula de veritat dF(x3,x2,x1,x0).
c) Omple el segent cronograma:
X3
X2
X1
X0
E3
E2
E1
E0
11
1.33 Dissenya els segents circuits:
1.35 Dissenya un sistema combinacional a nivell de blocs que a partir de 3 bits dentrada X2 X1 X0
(corresponents als dgits 0 al 7 codificats en binari natural) obtingui tres bits de sortida Z2 Z1 Z0,
codificats en binari natural, que representin la funci Z=(3 X) mod 8.
1.36 Dissenya el sistema combinacional de la figura, destinat a comptar el nombre duns que t un
vector binari entrada3-0 de quatre bits.
ORDRE3-0 A
El bloc ORDENAR ordena el vector binari entrada3-0, collocant tots els uns a la dreta i
tots els zeros a lesquerra. Per exemple:
si entrada = 0101 llavors ordre = 0011
si entrada = 0000 llavors ordre = 0000
12
Respon els segents apartats:
a) Fes la taula de veritat del bloc ORDENAR y expressa en forma de suma de productes les
seves funcions de sortida ordre3-0. Realitza el disseny sense minimitzar i utilitzant portes
lgiques.
b) Dissenya el bloc COMPTAR utilitzant noms blocs combinacionals (exceptuant memria
ROM), de la grandria que faci falta.
c) Dissenya el sistema combinacional A amb una memria ROM (indicant la seva grandria i
contingut).
1.37 Quina funci realitza el segent circuit si interpretem les entrades i la sortida com nombres
codificats en binari natural?
A
2
2
B
A0
0
A1 2
0 0 S
A0 0 1 1 0
A1 1 2 2 1 1
3 c
3
0
X0 X0
1
X1 X1
2
X2 X2
MDUL A
13
b) Qu fa el mdul B, si X=(x2,x1,x0) i X'=(x2',x1',x0') sn els mateixos nmeros utilitzats a
lapartat anterior i que Y=(y2,y1,y0) s tamb un nmero enter codificat en complement a
dos?
(y2,y1,y0) (0,0,0) (x2,x1,x0) (x2,x1,x0)
3 3 3 3
0 1 0 1
C0 C1
3 MDUL B
(S 2,S 1,S 0)
14
1.42 Un codificador con prioridad cclica es un codificador con n entradas de control adicionales que le
indican cul de las 2 n entradas de datos es la de mxima prioridad para ser codificada a la salida.
A partir de ah, la prioridad es cclica. Es decir, si n=3 y las entradas de control codifican un 4, el
orden en que deben explorarse las entradas de datos para codificar la salida es: 4, 3, 2, 1, 0, 7, 6, 5.
1.43 Es disposa dun circuit combinacional que implementa un multiplicador de dos nombres enters, de
2
A
4
MUL M=A*B
2
B
( a4 + a3 + a2 )
on 'a' s un nombre enter de dos bits representat en complement a dos. Es poden usar
blocs de qualsevol nmero de bits (especifica de quants), incls el de lapartat a, que no cal
dissenyar. Una possible soluci noms requereix un sumador i dos multiplicadors.
1.45 Usando sumadores y restadores, disea un circuito que permita comparar dos nmeros naturales
de 4 bits, y nos diga, mediante tres bits independientes, si A>B, A=B y A<B
1.46 Disea un circuito que obtenga el mximo de dos nmeros naturales de 4 bits
1.47 Disea a nivel de bloques un sistema combinacional que haga la funcin Y=INT (0.75*MAX
(A,B)), donde la funcin INT calcula la parte entera por defecto y la funcin MAX calcula el
mximo de los dos nmeros naturales.
A
8 S.L .C . Y
8
B
8
15
Hazlo de 3 maneras distintas, considerando:
a) 0.75= +
b) 0.75 =(2+1)/3
c) 0.75 = 1
A0 B0
S/R
A B
+
q CIN COUT
BB:bloque
S
bsico
S0
1.52 Disea un sumador/restador de ocho bits de nmeros naturales, codificados en binario natural, y
de nmeros enteros, codificados en Complemento a dos. Adems del resultado, ha de proporcionar
cuatro bits de condicin: N, Z, V y C. Este sistema responde al bloque siguiente:
16
S/R R
0 A+B+Ci
1 A+B-Ci
8 8
N A B
Z +/- S/R
N negativo
V Ci Z cero
C R V overflow
C carry
8
a) Usando un nico sumador de 4 bits, disea una ALU con salida Out de 4 bits que, a partir de
2 entradas de control S1 y S0, realice las siguientes operaciones sobre dos nmeros A y B de
4 bits:
S1=0, S0=0: Out=A+B
S1=0, S0=1: Out=A-B
S1=1, S0=0: Out=A
S1=1, S0=1: Out=-A
Para el diseo debes usar nicamente un sumador con propagacin de acarreo de 4 bits y
las puertas lgicas que consideres necesarias
b) Aade a la ALU diseada en el apartado anterior la lgica necesaria para calcular los
siguientes bits de condicin:
O: Overflow si los nmeros de entrada son naturales
O: Overflow si los nmeros de entrada son enteros
N: Signo si los nmeros de entrada son enteros. N=1 si el resultado de la operacin es
negativo, y cero en caso contrario.
Z: Z=1 si el valor de Out es 0, y vale 0 en caso contrario
17
1.54 Usando un nico sumador de 4 bits, disea una ALU con salida Out de 4 bits que, a partir de 3
entradas de control S2, S1 y S0, realice las siguientes operaciones sobre dos nmeros A y B de 4
bits:
18
2 PROBLEMAS DE SISTEMAS LGICOS SECUENCIALES
0
I
0
E 1 S
1
Dibuixa el valor dels senyals I i S al cronograma, suposant que el senyal I val inicialment 1.
2.2 Completa el cronograma que correspon al circuit descrit a la figura. Inicialment, suposarem que la
sortida Q val zero.
19
I D Q Sal
clock
Clock
Sal
2.3 Completa el cronograma que correspon al circuit descrit a la figura. Inicialment, suposarem que la
sortida Q val zero.
Reset
R
I D Q Sal
clock
S
Set
Clock
Reset
Set
Sal
20
2.4 Completa el cronograma que correspon al circuit descrit a la figura. Inicialment, suposarem que la
sortida Q val zero.
Reset
0
R
D Q Sal
I 1
clock
S
L
Set
Clock
Reset
Set
Sal
2.5 Completa el cronograma que correspon al circuit descrit a la figura. Inicialment, suposarem que
las sortides Q de tots els biestables valen zero.
I D Q D Q D Q
clock
S2 S1 S0
21
Clock
S2
S1
S0
2.6 Completa el cronograma que correspon al circuit descrit a la figura. Inicialment, suposarem que
las sortides Q de tots els biestables valen zero. Descriu en poques paraules que fa el circuit en
funci del senyal D/C.
Clock
I2
I1
I0
D/C
S2
S1
S0
22
I2 I1 I0
D/C
0 0 0
D Q D Q D Q
E 1 1 1
clock
S2 S1 S0
C = 0 si A s menor que B
C = 1 si A s ms gran o igual que B
a3 b3 a2 b2 a1 b1 a0 b0
a f b a f b a f b a f b
B1 B1 B1 B1
f f f f
B2
C
a) Veient com sha construt el bloc B2, dedueix la taula de veritat del bloc B1.
b) Utilitzant el bloc B1 sha construt aquest altre circuit. Descriu quina funci pot realitzar
aquest circuit
A a B1
In
f f D Q C
B b
reset
clock R
23
c) Completa el cronograma que correspon al circuit de lapartat b).
Clock
In
2.8 Especifica (fes el graf destats) dun sistema lgic seqencial que generi cclicament la seqncia
de nmeros 0,1,3,4,7, codificats en binari.
2.9 Especifica un sistema lgic seqencial que, en funci duna entrada X, generi per la sortida les
segents seqncies de nmeros (codificats en binari):
2.10 Disea un reconocedor de secuencia con salida Z=1 durante un ciclo de reloj al detectar por la
lnea serie de entrada X la secuencia '0110'.
24
2.11 Especifica un sistema lgic seqencial que posi la sortida a 1 durant un cicle quan hagin arribat per
lentrada dos o ms 0s consecutius, o b quatre o ms 1s consecutius. Inicialment la sortida ha de
valer 0. Abans de fer el disseny, fes un cronograma amb lexemple i comprova que la sortida Y
esta un cicle desplaada con respecte a la entrada X. Quin s el motiu?
Per exemple:
X 10001011111011...
Y 00011000001100...
(sentn que els bits entren desquerra a dreta)
2.12 Un sistema lgic seqencial rep a lentrada dgits decimals ([0..9]) codificats en BCD (un per
cicle). Quan ha arribat la seqncia 121, la sortida es posa a 1 durant un cicle. Dibuixa el graf
destats del sistema.
2.13 Disea un sistema secuencial que reconozca las secuencias de tres bits '101' y '010', y detecte el
posible solapamiento entre ellas. Cuando se detecta una de estas secuencias se activa un bit de
salida a 1.
2.14 Especifica un sistema lgic seqencial en qu la seqncia 101 a lentrada (dun bit) provoqui que
la sortida es posi a 1, i la seqncia 001 a lentrada provoqui que la sortida es posi a 0. Inicialment
la sortida ha de valer 1.
2.15 Un sistema secuencial tiene tres posibles smbolos de entrada A, B y C. Dibuja el grafo de estados
de dicho circuito sabiendo que es capaz de detectar, con un '1' en la salida, que han entrado un
nmero par de smbolos A o un nmero impar de smbolos B. Utiliza la codificacin de entrada:
A=00, B=10, C=01.
Prev tambin un posible error a la entrada si se presenta la combinacin '11', en cuyo caso el
sistema volver al estado inicial.
2.16 Es vol dissenyar un sistema lgic seqencial per a tirar un dau. Les sortides del sistema estaran
connectades als punts dun dau electrnic de la manera segent:
S0 a b
jugar
SLS
S1 c d e
clk
S2
f g
Dau electrnic
Les combinacions possibles del dau sn les segents:
25
Mentre el senyal dentrada jugar estigui activat, el sistema generar cclicament les 6
combinacions del dau. Quan el senyal jugar estigui desactivat, no es produir cap transici. Aix,
quan un jugador deixi de polsar el senyal jugar veur al dau la combinaci que li ha sortit (se suposa
que la freqncia del rellotge s molt alta i no es poden arribar a distingir les combinacions
intermitges).
2.17 Es vol dissenyar el comandament del control remot dun cotxe de joguina. El comandament t dos
botons: E i D.
Si el cotxe est parat, en polsar-se qualsevol bot es posa en moviment: gira a lesquerra si
es polsa E, gira a la dreta si es polsa D, i tira endavant si es polsen tots dos alhora.
Mentre el cotxe est en moviment, si es polsa E
girar a lesquerra si anava recte,
anir recte si estava girant a la dreta,
seguir girant a lesquerra si ja ho feia
i similarment quan es polsi D. Quan es polsin tots dos botons alhora es parar.
Especifica un sistema lgic seqencial que rebi com a entrada 2 senyals connectats als
botons E i D (1: polsat; 0: no polsat) i generi dos senyals Z1 i Z0 que governaran el cotxe, segons la
taula segent:
26
2.18 Dibuixa el graf destats dun sistema lgic seqencial que controli els semfors dun pont pel qual
noms poden passar cotxes en un sentit.
Semd
Sd
Se Seme
Els cotxes entren i surten del prquing pel mateix tnel, en el qual noms hi cap un cotxe. Al
tnel hi ha dos sensors, A i B, separats un metre, de manera que es pot saber si un cotxe est entrant o
sortint segons lordre en qu sactivin els sensors (se suposa que tots els cotxes medeixen ms dun
metre i que entre un cotxe i el segent hi ha ms dun metre).
Quan un cotxe ha entrat totalment al prquing sincrementa el nombre de cotxes aparcats, i
quan nha sortit totalment es decrementa. Un cotxe pot fer marxa enrera en qualsevol moment.
Dos cotxes no es trobaran mai de cara al tnel. Tampoc no hi haur mai peatons.
A B
1 m.
PRQUING
TNEL
Dissenya un sistema lgic seqencial que generi els senyals COMPTAR i DESCOMPTAR a
partir dels senyals A i B que envien els sensors.
27
2.20 Se desea disear un sistema secuencial para controlar un paso a nivel con barreras como el que se
muestra en la figura 1.
X1 Y1
Via 1
X2 Y2
Via 2
Sistema
Secuencial Z
2.20.1 Figura 1
Los trenes siempre circulan en los sentidos indicados en la figura 1. Se han colocado
sobre las vas cuatro sensores (X1, X2, Y1, Y2) que envan una seal de valor '1' mientras un tren
pasa por encima de l.
El sistema tiene como salida la seal Z, que toma el valor '1' cuando las barreras estn
cerradas y '0' cuando estn abiertas. Las barreras se han de cerrar (Z=1) cuando un tren encuentre
el primer sensor (Y1 para la va 1 y X2 para la va 2), y se han de abrir (Z=0) cuando encuentre el
segundo sensor. En la figura 2 puede verse un ejemplo.
Nota: la longitud de los trenes es menor que L (un mismo tren no puede estar activando
simultneamente Yi y Xi, i=1,2) y los trenes que circulan por la misma va estn separados por
una distancia mayor que 2L, por lo que las combinaciones '1x1x' y 'x1x1' estn prohibidas.
28
X1 Y1
Z=0
X2 Y2
Z=1
Z=1
Z=1
Z=1
Z=0
2.20.2 Figura 2
2.21 Dibuixa el graf destats del sistema de la figura (a), sabent que P s un sistema lgic seqencial
que es comporta segons el graf de la figura (b).
clk E
Y1Y0
E1
X 00
Z S Y1 x
S P 0
C 0
Y0
E3 1 E2
10 01
1
(a) (b)
29
Implementaci de Sistemes Lgics Seqencials
2.22 Implementa els sistema lgic seqencials que descriuen cadascun dels grafs destats segents. En
cada cas, fes-ho codificant els estats per tal de minimitzar el nombre de biestables.
a)
b)
A
001
C B
100 010
c)
30
2.23 Implementa el sistema lgic seqencial segent, usant el menor nombre possible de biestables i
una memria ROM.
estat A B C D
Z1Z0
2.24 Fes la sntesi del sistema lgic seqencial segent, usant 2 biestables i el menor nombre possible
de portes.
estat
2.25 Disea el sistema secuencial propuesto en el problema 2.13 usando biestables D y una memoria
ROM del tamao necesario. Indica el tamao y contenido de la ROM.
2.26 Fes el disseny del sistema seqencial modelat pel graf destats del problema 2.8 utilitzant portes
lgiques i una memria ROM de la mida que calgui. Indica clarament la grandria i contingut de
la ROM. Introdueix un senyal asncron INICIO que faci que el sistema comenci la seqncia
generant un 1 per la seva sortida.
31
2.27 Considera el grafo de estados del problema 2.10.
a) Implementa el sistema con el menor nmero posible de biestables tipo D y las puertas
lgicas necesarias.
b) Implementa el sistema con un registro de desplazamiento de longitud adecuada y las puertas
que consideres necesarias.
c) Compara las dos soluciones, considerando:
la facilidad en el diseo,
el coste,
la facilidad de modificar cualquier parmetro del diseo.
2.28 Dissenya i implementa amb el menor nombre possible de biestables un sistema lgic seqencial
que funcioni com un comptador reversible mdul 5. Comptar endavant o endarrera en funci
dun senyal dentrada.
X = 0 : comptar endavant
X = 1 : comptar endarrera
La sortida es codificar segons aquesta taula:
Sortida
0000
0001
0011
0111
1111
Utilitza una memria ROM per a implementar les funcions de transici, i dos blocs
combinacionals (diferents duna ROM) per a implementar les sortides.
2.29 Fes lanlisi (dibuixa el graf d'estats) que descriu el funcionament del sistema lgic seqencial
segent.
D Q D Q D Q
Q Q Q
clk
Z2 Z1 Z0
2.30 Suposant que la memria ROM de la figura (a) t el contingut que es mostra a la figura (b),
dibuixa el graf destats del sistema lgic seqencial de la figura (a).
32
@ M[@]
A3
X + D2 D1 D0
A2 0 0 0 1
@ ROM
A1 1 0 1 0
A0 - 2 0 1 1
3 1 0 0
Z0 D0 D1 D2 4 1 0 1
Z1 Q D 5 0 0 0
Z2 Q0
6 0 0 0
7 0 0 0
Q1 Q D 8 1 0 1
9 0 0 0
10 0 0 1
Q2 Q D 11 0 1 0
12 0 1 1
CLK 13 1 0 0
14 0 0 0
15 0 0 0
(a) (b)
2.31 Troba el graf destats del sistema lgic seqencial que implementa el circuit segent:
0
+ 1
- 2 D Q 0
3 0 1
2 D Q
Q 1
1
0 3
+ - Q
clk
33
3 Mquina Rudimentaria
Lenguaje mquina
a) 1006h
b) 4E20h
c) 80A1h
d) EA64h
e) C6F1h
f) E846h
g) A825h
3.2 Pasa a notacin binaria y hexadecimal las siguientes instrucciones escritas en lenguaje
ensamblador de la MR.
3.3 Indica cul es el resultado de ejecutar las siguientes instrucciones, dando el contenido final de los
registros y posiciones de memoria que se modifican y el valor de los indicadores de condicin. Se
supone para cada caso que el contenido inicial de los registros y posiciones de memoria es el
siguiente:
R1=2454h R2=5656h
R3=FFFFh R4=0000h
R5=0002h
Memoria
Direccin Contenido
00h 0339h
01h 63AFh
02h EA00h
03h 3304h
04h 7834h
05h 54AAh
34
a) SUB R1,R2,R5
b) ADDI R3, #1, R1
c) LOAD 3(R5), R1
d) STORE R4, 1(R4)
e) ASR R2, R7
D024h
C864h
D844h
3.5 La instruccin SWAP a, b est presente en algunos lenguajes de alto nivel. Esta instruccin
intercambia los valores de las variables a y b. Escribe en lenguaje mquina de la MR un programa
que se comporte como esta instruccin, suponiendo que las variables a y b se encuentran:
3.6 Escribe en lenguaje mquina de la MR un programa que cuente el nmero de bits que valen 1 en
un nmero NUM almacenado en memoria. Supn que el nmero NUM se encuentra en la
direccin 03h y que las instrucciones se almacenan a partir de la direccin 04h.
3.7 Escribe en lenguaje mquina de la MR un programa que realice la divisin por 2n de un nmero
NUM. El exponente n es un nmero positivo menor de 16. Utiliza desplazamientos para realizar la
divisin, y supn que:
3.8 Escribe en lenguaje mquina de la MR un programa que indique si un nmero NUM es par o
impar. El nmero NUM esta en la posicin 03h de memoria. Utiliza la instruccin AND para
averiguar el valor del bit de menor peso (0 par, 1 impar).
35
Memoria
Direccin Contenido
00h 0009h
01h XXXXh
02h 0800h
03h D004h
04h D824h
05h 8809h
06h D224h
07h DB09h
08h 8005h
09h 5001h
CA24h
D145h
C945h
3.11 Dado el siguiente fragmento de programa, escrito en algn lenguaje de alto nivel, tradcelo a
lenguaje mquina de la MR suponiendo que est almacenado a partir de la direccin de memoria
00h.
3.12 Dado el siguiente fragmento de programa, escrito en algn lenguaje de alto nivel, tradcelo a
lenguaje mquina de la MR suponiendo que est almacenado a partir de la direccin de memoria
A0h.
3.13 Dado el siguiente fragmento de programa, escrito en algn lenguaje de alto nivel, tradcelo a
lenguaje mquina de la MR suponiendo que est almacenado a partir de la direccin de memoria
38h.
36
3.14 Dado el siguiente fragmento de programa, escrito en algn lenguaje de alto nivel, tradcelo a
lenguaje mquina de la MR suponiendo que est almacenado a partir de la direccin de memoria
22h.
Unidad de proceso
a) Tamao de la instruccin
b) Anchura de la memoria
c) Buses internos de datos de la Unidad de Proceso
d) Registros internos de la Unidad de Proceso
3.16 Indica cmo afectara a los siguientes elementos de la MR el aumentar el tamao de la memoria
hasta tener una memoria de 64 Kpalabras en lugar de 256 palabras.
3.17 Indica qu modificaciones habra que hacer en los siguientes elementos de la MR si se desease
trabajar con nmeros en complemento a dos de 32 bits, en lugar de hacerlo con nmeros de 16
bits.
a) La ALU
b) La Memoria
c) El Banco de Registros
d) Los buses de datos internos de la Unidad de Proceso.
e) Los registros internos de la Unidad de Proceso
3.19 Redisea la ALU para que, adems de los indicadores de condicin Z y N, tambin calcule los
indicadores:
37
* V: desbordamiento para enteros
* C: desbordamiento para naturales
a) Redisea la ALU para que un nico sumador realice las operaciones de suma y de resta que
necesitan las instrucciones ADD, SUB, ADDI y SUBI.
b) Es necesario modificar la codificacin de las instrucciones?
3.21 Queremos substituir la instruccin ASR de la MR por una instruccin que compare dos operandos
fuente (CMP Rf1 Rf2) y modifique el indicador de condicin Z de la manera que se indica a
continuacin, sin importar el valor que se guarde en el indicador de condicin N:
Unidad de Control
3.22 Suponiendo que el tiempo de respuesta de los distintos elementos de la Unidad de Proceso es el
siguiente:
3.23 Suponiendo que se incluye un registro RMEM entre el multiplexor SELDAT y la memoria, que no
afecte al camino entre la salida de la memoria y el registro IR, contesta a los siguientes apartados:
a) Disea el nuevo grafo de estados para ejecutar las instrucciones de la MR de forma que se
optimice el nmero de estados necesario para ejecutar la instruccin LOAD. Indica la tabla
de salidas de los nuevos estados
b) Contesta a los apartados a) y b) del problema 3.22 utilizando el nuevo grafo de estados.
38
c) Qu mejora supone (en tiempo de ejecucin) incluir el registro RMEM en la Unidad de
Proceso?
3.24 Queremos disear una mquina con el mismo juego de instrucciones que la MR:
a) Disea un Banco de Registros que posea dos puertos de lectura. El hecho de que un Banco
de Registros tenga dos puertos de lectura implica que se pueden leer dos registros al mismo
tiempo.
b) Qu cambios en el diseo de la Unidad de Proceso de la MR provocara el substituir su
Banco de Registros por el que se propone en el apartado a)? Tendra que cambiar el
formato de las instrucciones?
3.26 Queremos aadir al juego de instrucciones de la MR una instruccin aritmtica que multiplique
por dos un operando fuente almacenado en un registro y deje el resultado en un registro destino
(MULDOS Rf, Rd).
Ejecucin de instrucciones
00h BR 03h
01h SUB R0, R0, R0
02h BR 05h
03h ADD R0, R0, R0
04h BGE 01h
39
a) En qu orden se ejecutan las instrucciones?
b) Cuntos ciclos tarda en ejecutarse el programa (suponiendo el grafo ms simplificado para
la Unidad de Control)?
c) Indica los diferentes valores que toma el PC en cada una de las fases de ejecucin de las
instrucciones durante la ejecucin del programa.
d) Compara la secuencia de direcciones almacenada en el PC con la secuencia de direcciones
correspondiente a la ejecucin de instrucciones. Se corresponden ambas secuencias?
Justifica la respuesta.
3.30 Se desea disear la Unidad de Control de la MR como un sistema lgico secuencial cuya funcin
de estado se realiza de forma mnima a tres niveles, y cuya funcin de salida se realiza con una
memoria ROM. Escribe la tabla de transicin y excitacin suponiendo que se usan biestables D, y
el contenido de la memoria ROM.
40
3.32 Si el Banco de Registros de la Unidad de Proceso de la MR poseyese dos puertos de lectura (ver
problema 3.25):
3.33 Si la ALU de la MR, adems de los indicadores de condicin Z y N tambin calculara los
indicadores:
3.34 Traduce el siguiente programa, escrito en un lenguaje de alto nivel, a lenguaje ensamblador de la
MR y posteriormente a lenguaje mquina, suponiendo que:
41
3.35 Traduce el siguiente programa, escrito en un lenguaje de alto nivel, a lenguaje ensamblador de la
MR y posteriormente a lenguaje mquina, suponiendo que se almacena a partir de la direccin
00h.
programa ejemplo2;
var a, b, c : entero;
a := 13;
b := 1;
c := 0;
mientras (a > 10) o (b < 20) hacer
si ( a < 11 ) y ( b > 18 ) entonces c := c + 3 fsi;
a := a - b;
fmientras;
fprograma.
3.36 El siguiente programa calcula el mximo comn divisor de dos nmeros a y b segn el algoritmo
de restas de Euclides:
programa ejemplo3;
var a=5, b=15, mcd: entero;
mientras (a <> b) hacer
si (a>b) entonces a:=a-b
sino b:=b-a
fsi;
fmientras;
mcd := a;
fprograma.
42
3.37 Dado el siguiente fragmento de programa escrito en lenguaje ensamblador de la MR:
N=6
X=8
Y=12
.org 16
adrA: .DW X,Y
.DW 0, 0
adrB: .DW N, X+Y, N+2
adrV: .DW 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
.DW 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
3.38 Escribe en un lenguaje de alto nivel un programa que calcule el cuadrado de un nmero positivo a
mediante la suma acumulada a veces. Tradcelo a lenguaje ensamblador de la MR y
posteriormente a lenguaje mquina, suponiendo que se almacena a partir de la direccin 00h.
3.39 El siguiente algoritmo descrito en un lenguaje de alto nivel calcula el factorial de un nmero a.
Tradcelo a lenguaje ensamblador de la MR y posteriormente a lenguaje mquina, suponiendo que
se almacena a partir de la direccin 00h. Indica el contenido de la tabla de smbolos.
Programa FACTORIAL;
var n, ind1, ind2, asumar, acum, fact: entero;
n:= 9;
ind1:= n;
asumar := n;
acum:= 0;
mientras ( ind1 > 2) hacer
ind2 := ind1 - 1;
mientras ( ind2 > 0 ) hacer
acum := acum + asumar;
43
ind2 := ind2 - 1;
fmientras;
asumar := acum;
acum := 0;
ind1 := ind1 - 1;
fmientras;
fact := asumar;
fprograma.
3.40 Escribe en un lenguaje de alto nivel un programa que calcule el nmero de letras a de una frase
terminada en punto. Traduce el programa a lenguaje ensamblador y lenguaje mquina de la MR,
suponiendo que:
3.41 Escribe en un lenguaje de alto nivel un programa que calcule la suma de los elementos de un
vector al mismo tiempo que busca los elementos mximo y mnimo. Tradcelo a lenguaje
ensamblador de la MR y posteriormente a lenguaje mquina, suponiendo que los datos se
almacenan a partir de la direccin 00h y las instrucciones a partir de la direccin 3Ah.
3.42 Escribe en un lenguaje de alto nivel un programa que sume, elemento a elemento, dos vectores A y
B, dejando el resultado en un tercer vector C (C[i] := A[i] + B[i]). El tamao de los vectores es de
10 elementos. Traduce el programa a lenguaje ensamblador de la MR y posteriormente a lenguaje
mquina, suponiendo que los vectores se almacenan a partir de la direccin de memoria 00h y el
programa se almacena a partir de la direccin 80h.
3.43 Escribe en lenguaje ensamblador de la MR las macros que permitan ejecutar las siguientes
instrucciones, pertenecientes a los juegos de instrucciones de otros computadores:
44
g) mov Rf, Rd Copia el valor del registro Rf en el registro Rd
h) mov Rf, A(Ri) Copia el valor del registro Rf en la posicin de memoria
M[A+(Ri)]
i) mov A(Ri), B(Rj) Copia el valor de la posicin de memoria M[A+(Ri)] en la
posicin de memoria M[B+(Rj)]
j) swap Rf1, Rf2 Intercambia los valores de los registros Rf1 y Rf2
k) swap A(Ri), B(Rj) Intercambia los valores de las posiciones de memoria
M[A+(Ri)] y M[B+(Rj)]
l) asrn #n, Rd Desplaza n bits a la derecha el registro Rd. El nmero n ha de
ser mayor que 0 y menor que 16
m) asln #n, Rd Desplaza n bits a la izquierda el registro Rd. El nmero n ha
de ser mayor que 0 y menor que 16
n) inc A(Ri) Incrementa el contenido de la posicin de memoria
M[A+(Ri)]
3.44 Escribe en un lenguaje de alto nivel un programa que calcule la suma de los elementos de un
vector V que cumplan ser mayores que un cierto valor MNIMO y menores que un cierto valor
MXIMO (MNIMO < V[i] < MXIMO). Tradcelo a lenguaje ensamblador de la MR y
posteriormente a lenguaje mquina, suponiendo que el programa se almacena a partir de la
direccin 3Ah.
programa FACTORIAL;
var a, cont, factorial: entero;
a:= 8;
cont := 1;
factorial := 1;
mientras ( cont < A ) hacer
cont := cont + 1;
factorial := factorial * cont;
fmientras;
fprograma.
a) Disea y usa la macro mul $1, $2, $3, que multiplica el contenido de dos registros ($1, $2)
y deja el resultado en un tercer registro ($3). Los tres registros deben ser diferentes.
b) Haz el preensamblado (expansin de macros) y el postensamblado (creacin de la tabla de
smbolos y generacin de cdigo) del programa, suponiendo que el programa se almacena a
partir de la direccin de memoria 00h.
45
N: .DW 4
RESUL: .RW 1
.DEF cmp $1, $2
SUB $1, $2, R0
.ENDDEF
.DEF cmp $1, $i2
SUBI $1, $i2, R0
.ENDDEF
.DEF clr $1
ADD R0, R0, $1
.ENDDEF
.DEF mov $1, $2
ADD R0, $1, $2
.ENDDEF
.DEF mov $i1, $2
ADDI R0, $i1, $2
.ENDDEF
.DEF mov $d1, $2
LOAD $d1, $2
.ENDDEF
.DEF mov $1, $d2
STORE $1, $d2
.ENDDEF
.DEF inc $1
ADDI $1, #1. $1
.ENDDEF
.DEF dec $1
SUBI $1, #1. $1
.ENDDEF
.BEGIN INI
INI: MOV N(R0), R1
MOV R1, R3
clr R4
M1: cmp R1, #2
BLE FM1
SUBI R1, #1, R2
M2: cmp R2, #0
BLE FM2
ADD R4, R3, R4
dec R2
46
BR M2
FM2: mov R4, R3
clr R4
dec R1
BR M1
FM1: mov R3, RESUL(R0)
.END
47