Sei sulla pagina 1di 53

TEMA 4:

4
Modelo de mquina elemental: Smplez+I3

J. Ivn Maza Alcaiz


Dpto.
p Ingeniera
g
de Sistemas y Automtica
Escuela Superior de Ingenieros
Universidad de Sevilla

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

TEMA
TEMA:
Modelo de mquina elemental: Smplez+I3
1. Modelo estructural
2. Modos de direccionamiento
3. Modelo funcional
4. Convenios simblicos
5. Ejemplos
j p

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

1. Modelo estructural
DIFERENCIAS CON SMPLEZ

Se aade
S
d un registro
i t de
d doce
d
bits
bit en la
l UCP,
UCP all que
llamaremos registro X (registro de ndice).
Bus A pasa a tener 12 bits
bits. MP puede tener ahora 4096
palabras (las cuatro ltimas, reservadas para la entrada y la
salida):

4092:
4093:
4094:
4095:

Estado pantalla
Dato pantalla
p
Estado teclado
Dato teclado

Bit Z:

Z=1 si el resultado de la ltima operacin en la ALU ha sido 0.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

1. Modelo estructural
DIFERENCIAS CON SMPLEZ

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

TEMA
TEMA:
Modelo de mquina elemental: Smplez+I3
1. Modelo estructural
2. Modos de direccionamiento
3. Modelo funcional
4. Convenios simblicos
5. Ejemplos
j p

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

2. Modos de direccionamiento
EN SMPLEZ

En Smplez el direccionamiento es directo: lo que contenga el


campo CD es, directamente,
di t
t lla direccin
di
i de
d referencia
f
i en la
l MP,
MP
o direccin efectiva, DE.

LD /4 (la direccin efectiva del dato que quiero cargar en el


acumulador es 4)
CONCEPTO DE DIRECCIN EFECTIVA (DE)

Direccin de la MP donde est el dato.


CRITERIO DE NOTACIN

Utilizar parntesis para indicar contenido, sea de un registro o de


un campo de un formato o de una posicin de memoria.
memoria

(AC) representar el contenido del acumulador


(CD) el contenido del campo CD del formato de instrucciones

(4) el contenido de la posicin de memoria 4 (equivalente a MP[4])

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

2. Modos de direccionamiento
FORMATO DE INSTRUCCIONES

CD slo tiene seis bits, por lo que directamente slo pueden


direccionarse 26 = 64 palabras de la MP.
El bit 8 ("R") indica el registro (AC o X) con el que se opera (si la
instruccin
no opera con registro, no importa ell valor
l de
d R):
)

R=1: se opera con registro X


R 0 se opera con registro
R=0:
i t AC

Los bits 7 y 6 ("J" e "I") indican el modo de direccionamiento:

JJ=0,
0
J=0,
J=1
J=1,
J=1,

I=0:
I 0
I=1:
I=0:
I=1:

direccionamiento
di
i
i t directo
di t (igual
(i
l que en Smplez)
S l )
direccionamiento indirecto
direccionamiento indexado
direccionamiento indirecto e indexado

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

2. Modos de direccionamiento
DIRECCIONAMIENTO DIRECTO

Lo que contenga el campo CD es, directamente, la direccin de


referencia
f
i en la
l MP,
MP o direccin
di
i efectiva,
f ti
DE.
DE
( )
DE=(CD)

LD 1 (directo)

001 000 000001

[1]

DATO

DE=(CD)=1
(C )
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

2. Modos de direccionamiento
DIRECCIONAMIENTO INDIRECTO

Lo que contenga el campo CD es la direccin de una palabra


d la
de
l MP que contiene
ti
la
l direccin
di
i efectiva
f ti (es
( decir,
d i CD
tiene la direccin del puntero al operando).
DE=((CD))
LD 1 indirecto
i di t
[1]

[4]

DATO

001 001 000001


DE=((CD))=(1)=4
DE
((CD)) (1) 4
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

2. Modos de direccionamiento
DIRECCIONAMIENTO INDEXADO

Para calcular la direccin efectiva hay que sumar el contenido


d l registro
del
i t de
d ndice,
di
X.
X
DE=(CD) + (X)
LD 1 indexado
i d
d

X 3
X=3

001 010 000001


DE=(CD)
DE
(CD) + (X)
(X)= 1 + 3 = 4
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

[4]

DATO

10

2. Modos de direccionamiento
DIRECCIONAMIENTO INDIRECTO E INDEXADO

Aplicacin
p
conjunta
j
de los dos tipos
p de direccionamiento. El
convenio de orden es postindexacin, es decir, primero se
acude al puntero para buscar la direccin (direccionamiento
i di
indirecto)
) y luego
l
se suma ell contenido
id de
d X (direccionamiento
(di
i
i
indexado).
DE=((CD))+(X)
DE=( (CD)+(X) )
LD 1 indirecto e indexado

X=1

001 011 000001


DE=((CD)) + (X)= (1)+(X)= 3+(X) = 3+1 = 4
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

[1]

[4]

DATO
11

2. Modos de direccionamiento
DIRECCIONAMIENTO INMEDIATO

Tenemos un operando inmediato.


inmediato

El operando es directamente el contenido del CD

Se habla de "direccionamiento
direccionamiento inmediato
inmediato", pero no se direcciona
la MP, ya que el operando se extrae de la misma instruccin.
p
= (CD)
( )
Operando
LD 1 inmediato

101 000 000001


DE

Operando = DATO = (CD) = 1

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

[1]
[2]
[4]
12

2. Modos de direccionamiento
DIRECCIONAMIENTO INMEDIATO

La utilidad de este modo de direccionamiento se encuentra


cuando se quiere introducir un valor inicial en el registro AC o
en el registro
g
X: evita la necesidad de tener p
previamente
almacenado ese valor en la MP y leerlo de sta.
El valor ha de ser una constante comprendida entre 0 y 63
(que es lo que "da de s" el campo CD).
Tambin se utiliza con la instruccin de resta.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

13

2. Modos de direccionamiento
TABLA RESUMEN

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

14

TEMA:
Modelo de mquina elemental: Smplez+
1. Modelo estructural
2. Modos de direccionamiento
3. Modelo funcional
4. Convenios simblicos
5. Ejemplos
j p

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

3. Modelo funcional

Modelo funcional

Convenio representacin
p
datos e instrucciones
Repertorio de instrucciones

CONVENIO REPRESENTACIN DATOS E INSTRUCCIONES

Datos ((igual
g
que
q en Smplez)
p )

Nmeros enteros no negativos


Caracteres

Formato de instrucciones:

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

16

3. Modelo funcional
FORMATO DE INSTRUCCIONES

CD slo tiene seis bits, por lo que directamente slo pueden


direccionarse 26 = 64 palabras de la MP.
El bit 8 ("R") indica el registro (AC o X) con el que se opera (si la
instruccin
no opera con registro, no importa ell valor
l de
d R):
)

R=1: se opera con registro X


R 0 se opera con registro
R=0:
i t A

Los bits 7 y 6 ("J" e "I") indican el modo de direccionamiento:

JJ=0,
0
J=0,
J=1
J=1,
J=1,

I=0:
I 0
I=1:
I=0:
I=1:

direccionamiento
di
i
i t directo
di t (igual
(i
l que en Smplez)
S l )
direccionamiento indirecto
direccionamiento indexado
direccionamiento indirecto e indexado

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

17

3. Modelo funcional
REPERTORIO DE INSTRUCCIONES

Las instrucciones "CLR" y "DEC" (101 y 110) quedarn


sustituidas por otras ms potentes: LD# y SUB#.
Las dems instrucciones tienen los mismos significados que
en Smplez,
S l
con las
l siguientes
i i
matizaciones:
i i

"ST", "LD" y "ADD" (000, 001 y 010) pueden almacenar, cargar,


o sumar a
a, respectivamente
respectivamente, el acumulador AC o el registro X.
X
La condicin para la bifurcacin en "BZ" sigue siendo que el
resultado de la ltima operacin
p
en la UAL haya
y sido cero. En
Smplez esto es equivalente a decir que el contenido del
acumulador sea cero, pero NO EN SMPLEZ+I3, porque los
resultados pueden ir al acumulador o al registro X.
X

Instrucciones que pueden afectar al bit Z: LD, ADD, LD# y SUB#.


Solamente se puede restar en inmediato!!!

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

18

3. Modelo funcional
REPERTORIO DE INSTRUCCIONES

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

19

3. Modelo funcional
RESUMEN: DIRECCIONAMIENTOS vs INSTRUCCIONES

Tenemos,, por
p tanto,, las siguientes
g
posibilidades
p
en cuanto a
modos de direccionamiento:

Si el cdigo de operacin es 000, 001 010 (ST, LD o ADD),


entonces el modo de direccionamiento para llegar al operando
viene dado por la tabla del apartado 2.
2
Si el cdigo de operacin es 011 100 (BR o BZ) el valor que
tenga el bit 8 es indiferente y el modo de direccionamiento para
llegar a la direccin de bifurcacin viene dado tambin con la tabla
del apartado 2.
Si ell cdigo
di de
d operacin
i es 101 (LD # cargar literal)
lit l) 110 (SUB #
restar literal) el modo de direccionamiento es siempre inmediato.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

20

TEMA
TEMA:
Modelo de mquina elemental: Smplez+I3
1. Modelo estructural
2. Modos de direccionamiento
3. Modelo funcional
4. Convenios simblicos
5. Ejemplos
j p

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

4. Convenios simblicos

Seguiremos utilizando los convenios simblicos de Smplez


(cdigos de operacin nemnicos, direcciones en decimal).
Pero ahora tenemos que ampliar esos convenios para incluir la
informacin sobre:

El registro utilizado
El modo de direccionamiento.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

22

4. Convenios simblicos
REGISTRO UTILIZADO

Escribiremos, a continuacin del cdigo,


Escribiremos
cdigo ".A
A" o ".X
X" para indicar
que se opera con AC o con X
Despus, si la instruccin hace referencia a MP, una coma y
finalmente la direccin.

"Cargar
Cargar en el registro X el contenido de la palabra
cuya direccin es 7".
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

23

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento Directo

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

24

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto

Se indica el direccionamiento indirecto mediante corchetes.

"Sumar al contenido de X el contenido de la palabra cuya


direccin efectiva es MP[3]
MP[3], dejando el resultado en X"
X".
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

25

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

26

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indexado

Se indica que escribiendo [.X] tras la direccin.

"Sumar al contenido de X el contenido de la palabra cuya


d
direccin
efectiva
f
es 3+(X),
( ) y dejar
d
ell resultado
l d en X".
"
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

27

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indexado

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

28

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto e indexado

Se aplican a la vez los 2 criterios indicados para el


direccionamiento indirecto e indexado.

"Sumar al contenido de X el contenido de la palabra cuya


d
direccin
efectiva
f
es MP[3]+(X),
[ ] ( ) y dejar
d
ell resultado
l d en X".
"
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

29

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto e indexado

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

30

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento inmediato

Se representa con # delante del operando inmediato. Para


cargar
g utilizamos el mismo nemnico de la carga
g con
direccionamiento (LD) y para la resta SUB.

"Cargar un 10 en el registro X" .


FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

31

4. Convenios simblicos
MODO DE DIRECCIONAMIENTO

Direccionamiento inmediato

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

32

TEMA
TEMA:
Modelo de mquina elemental: Smplez+I3
1. Modelo estructural
2. Modos de direccionamiento
3. Modelo funcional
4. Convenios simblicos
5. Ejemplos
j p

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

5. Ejemplo 1: Sucesin de Fibonacci


Sumar los 10 primeros trminos de la sucesin
Pseudocdigo
PEN=0; ULT=1;
SUM=1; CONT=8;
Mientras CONT0
SIG=PEN+ULT;
S
SUM=SUM+SIG;
S
SG
PEN=ULT;
ULT SIG
ULT=SIG;
CONT--;
FinMientras
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

34

5. Ejemplo 1: Sucesin de Fibonacci


Ensamblador

PEN
ULT
SG
SIG
SUM
INI

ORG 0
BR /INI
RES 1
RES 1
RES
S1
RES 1
LD .A,
A #0
ST .A, /PEN
LD .A,
A #1
ST .A, /ULT
ST .A,
A /SUM
LD .X, #8

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

BUCLE BZ /FIN
LD .A, /PEN
ADD .A, /ULT
ST .A, /SIG
ADD .A, /SUM
ST .A, /SUM
LD .A, /ULT
ST .A,
A /PEN
LD .A, /SIG
ST .A,
A /ULT
SUB .X, #1
BR /BUCLE
FIN
HALT
35

5. Ejemplo 2: Suma 100 elementos de una tabla


Sumar los 100 nmeros situados entre las posiciones
50 y 149,
149 dejando el resultado en la posicin 150.
150
1) Versin indexada
Pseudocdigo

PSUMA=150;
*PSUMA=0;
X=100;
Mientras X0
X--;
*PSUMA+=TAB[X];
FinMientras

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

36

5. Ejemplo 2: Suma 100 elementos de una tabla


Ensamblador
ORG 0
BR /INIPRG
/
G
PSUMA DATA SUMA
CIEN DATA 100
INIPRG LD .A, #0
ST .A, [/PSUMA]
LD .X, /CIEN

BUCLE BZ /FIN
SUB .X,
X #1
ADD .A, /TAB[.X]
SUB .X,
X #0
BR /BUCLE
FIN
ST .A, [/PSUMA]
HALT

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

TAB

SUMA

ORG 50
DATA 23
.
.
.
DATA 31
RES 1
END

37

5. Ejemplo 2: Suma 100 elementos de una tabla


Sumar los 100 nmeros situados entre las posiciones
50 y 149,
149 dejando el resultado en la posicin 150.
150
1) Versin con punteros
Pseudocdigo

PSUMA=150; PTAB=149;
*PSUMA 0
*PSUMA=0;
X=100;
Mientras X0
*PSUMA+=*PTAB;
PTAB--;
X--;
FinMientras

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

38

5. Ejemplo 2: Suma 100 elementos de una tabla


Ensamblador
ORG 0
BR /INIPRG
PSUMA DATA SUMA
DTAB DATA FTAB
PTAB RES 1
CIEN DATA 100
INIPRG LD .A,
A #0
ST .A, [/PSUMA]
LD .A,
A /DTAB
ST .A, /PTAB
LD .X, /CIEN

BUCLE BZ /FIN
LD .A,
A [/PTAB]
ADD .A, [/PSUMA]
ST .A,
A [/PSUMA]
LD .A, /PTAB
SUB .A, #1
ST .A, /PTAB
SUB .X, #1
BR /BUCLE
FIN
HALT

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

TAB

FTAB
SUMA

ORG 50
DATA 23
.
.
.
DATA 31
RES 1
END

39

5. Ejemplo 3: Uso de subprogramas (resta)

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

40

5. Ejemplo 3: Uso de subprogramas (resta)


Pseudocdigo

<Principal>

E R t (B A)
E=Resta(B,A);

F=Resta(D C);
F=Resta(D,C);

<Fin>

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

<Resta> (MINU,SUSTR)
RESULT=MINU;
Mi t
Mientras
SUSTR0
RESULT--;
SUSTR ;
SUSTR--;
FinMientras
Devuelve RESULT;
<Fin>

41

5. Ejemplo 3: Uso de subprogramas (resta)


Principal

LD .A,
A /B
ST .A, /MINU
/
LD .A,, /A
ST .A, /SUSTR
LD .A, #DRET1
ST .A, /DIRRET
BR /RESTA
DRET1 LD .A, /RESULT
ST .A, /E

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

LD .A,
A /D
ST .A, /MINU
/
LD .A,, /C
ST .A, /SUSTR
LD .A, #DRET2
ST .A, /DIRRET
BR /RESTA
DRET2 LD .A, /RESULT
ST .A, /F

42

5. Ejemplo 3: Uso de subprogramas (resta)


Principal

ORG 0
BR /INIPRG
DDRET1 DATA DRET1

ORG 62
INIPRG LD .A, /B
ST .A,
A /MINU
LD .A, /A
ST .A,
A /SUSTR
LD .A, /DDRET1
ST .A, /DIRRET
BR /RESTA
DRET1 LD .A, /RESULT
ST .A,
A /E

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

43

5. Ejemplo 3: Uso de subprogramas (resta)


Subprograma

RESTA
MINU
SUSTR
RESULT
DIRRET
INIRUT

BR /INIRUT
RES 1
RES 1
RES 1
RES 1
LD .A, /MINU
LD .X,
X /SUSTR

BUCLE

FINRESTA

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

BZ /FINRESTA
SUB .A, #1
SUB .X, #1
BR /BUCLE
ST .A, /RESULT
BR [/DIRRET]

44

5. Ejemplo 3: Uso de subprogramas (resta)


Subprograma (salvar y restaurar registros!)
RESTA
MINU
SUSTR
RESULT
DIRRET
RA
RX
INIRUT

BR /INIRUT
RES 1
RES 1
RES 1
RES 1
RES 1
RES 1
ST .A, /RA
ST .X, /RX
LD .A, /MINU
LD .X, /SUSTR

BUCLE

FINRESTA

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

BZ /FINRESTA
SUB .A,
A #1
SUB .X, #1
BR //BUCLE
ST .A, /RESULT
LD .A,, /RA
/
LD .X, /RX
BR [/DIRRET]

45

5. Ejemplo 3: Uso de subprogramas (resta)


Subprograma (otro modo de pasar los parmetros)
PRUT

DRET1

DATA RESTA

LD .X,
X #1
LD .A, /B
ST .A, [/PRUT][.X]
LD .X,
X #2
LD .A, /A
[/
][ ]
ST .A,, [/PRUT][.X]
LD .X, #4
LD .A, #DRET1
ST .A,
A [/PRUT][.X]
[/PRUT][ X]
BR [/PRUT]
LD .X, #3
LD .A, [/PRUT][.X]
ST .A, /E

RESTA BR [/PINIRUT]
(parmetro ent
ent. 1)
(parmetro ent. 2)
(parm salida)
(parm.
(dir. retorno)

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

46

5. Ejemplo 4: Problema de inicializar con DATA


Ejecuciones sucesivas deben funcionar sin recargar!
BR /INI
VALOR DATA 100
VAR RES 1
CONT DATA 20
INI
LD .A, /VALOR
ST .A,, /VAR

BUCLE LD .A, /CONT


BZ /FIN
SUB .A, #1
/
ST .A,, /CONT
LD .A, /VAR
SUB .A, #1
ST .A, /VAR
BR /BUCLE
FIN
HALT

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

47

5. Ejemplo 5: Llenar vector por teclado

En la memoria de un ordenador Smplez+i3 se pretende almacenar un


y etiqueta
q
es DV, y cada
vector. El vector comienza en una direccin cuya
uno de los elementos ocupa una palabra de memoria.
Se pide realizar un programa en ensamblador que introduzca datos en
y
del teclado por
p espera
p
activa. Para realizar esto
el vector,, leyndolos
hay que tener en cuenta que por el puerto de entrada aparecern
sucesivamente el ndice que indica la posicin que ocupa el elemento
en el vector y el valor del elemento. La ltima posicin a la que se da
valor es la posicin 0. El programa parar despus de almacenar el
valor correspondiente.
Las direcciones del p
puerto de entrada tienen como etiquetas
q
CONTROL
y DATOS, y se suponen definidas.
La etiqueta DV se supone definida.
El programa deber funcionar independientemente de la posicin a que
apunten DV, CONTROL y DATOS.
Se supone que los ndices y valores de los elementos del vector son
inferiores a 10
10.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

48

5. Ejemplo 5: Llenar vector por teclado


Pseudocdigo
X=0;
PV DV;
PV=DV;
HACER
MIENTRAS CONTROL==0
FIN MIENTRAS
X=DATOS;
MIENTRAS CONTROL==0
FIN MIENTRAS
VALOR=DATOS;
PV[X]=VALOR;
MIENTRAS X!=0
FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

49

5. Ejemplo 5: Llenar vector por teclado

Ensamblador:

DDV
DDATOS
DCONTROL
PV
INI

ORG 0
BR /INI
DATA DV
DATA DATOS
DATA CONTROL
RES 1
LD .X, #0
LD .A,, /DDV
ST .A, /PV

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

BUCLE
ESP1 LD .A,
A [/DCONTROL]
BZ /ESP1
[/
OS]
LD .X,, [/DDATOS]
SUB .X, #48
ESP2 LD .A, [[/DCONTROL]]
BZ /ESP2
LD .A, [/DDATOS]
SUB .A, #48
ST .A, [/PV][.X]
SUB .X, #0
BZ /FIN
BR /BUCLE
FIN
HALT

50

5. Ejemplo 6: Subrutina para multiplicar

Realizar
R
li
una rutina
ti en ensamblador
bl d de
d Smplez+i
S l
i3 que
multiplica dos nmeros.
La rutina recibe en el registro AC una direccin de memoria.
memoria
A partir de dicha direccin se encuentran almacenados (por
este orden), el primer factor, el segundo factor y la
direccin de retorno; el resultado se devuelve en el registro
AC.
Las instrucciones de la rutina se ensamblarn a partir de la
direccin 20; no existe programa principal. Es preciso
d fi i las
definir
l etiquetas
ti
t que se utilicen
tili
y explicar
li
las
l
operaciones realizadas.

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

51

5. Ejemplo 6: Subrutina para multiplicar

Ensamblador:
MULTIP
F1
F2
DIR
DRET
RX
INIRUT

ORG 20
BR /INIRUT
RES 1
RES 1
RES 1
RES 1
RES 1
ST .X,, /RX
ST .A /DIR
LD .A, [/DIR]
ST .A, /F1

FUNDAMENTOS DE COMPUTADORES Ingeniera de Telecomunicacin

LD .X, #1
[/
][ ]
LD .A,, [/DIR][.X]
ST .A, /F2
LD .X, #2
LD .A, [/DIR][.X]
ST .A, /DRET
LD .A, #0
LD .X, /F2
BUCLE BZ /FRUT
ADD .A, /F1
SUB .X,
X #1
BR /BUCLE
FRUT LD .X,
X /RX
BR [/DRET]
52

TEMA 4:
4
Modelo de mquina elemental: Smplez+I3

J. Ivn Maza Alcaiz


Dpto.
p Ingeniera
g
de Sistemas y Automtica
Escuela Superior de Ingenieros
Universidad de Sevilla

Bibliografa:
REF:
Conceptos bsicos de arquitectura y sistemas operativos
AUTOR: Gregorio Fernndez.
PGs: Captulo 3

Potrebbero piacerti anche