Tema4

53
TEMA 4 TEMA 4: Modelo de máquina elemental: Símplez+I 3 J. Iván Maza Alcañiz Dpto. Ingeniería de Sistemas y Automática Escuela Superior de Ingenieros Universidad de Sevilla Universidad de Sevilla Bibliografía: REF: Conceptos básicos de arquitectura y sistemas operativos REF: Conceptos básicos de arquitectura y sistemas operativos AUTOR: Gregorio Fernández. PÁGs: Capítulo 3

description

Tema 4

Transcript of Tema4

TEMA 4TEMA 4:Modelo de máquina elemental: Símplez+I3

J. Iván Maza Alcañiz

Dpto. Ingeniería de Sistemas y Automáticap g y

Escuela Superior de Ingenieros

Universidad de SevillaUniversidad de Sevilla

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

TEMATEMA:Modelo de máquina elemental: Símplez+I3

1. Modelo estructural

2. Modos de direccionamiento

3. Modelo funcional

4. Convenios simbólicos

5. Ejemplosj p

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

1. Modelo estructural

S ñ d i t d d bit l UCP l

DIFERENCIAS CON SÍMPLEZ

Se añade un registro de doce bits en la UCP, al que llamaremos registro X (registro de índice).Bus A pasa a tener 12 bits MP puede tener ahora 4096 Bus A pasa a tener 12 bits. MP puede tener ahora 4096 palabras (las cuatro últimas, reservadas para la entrada y la salida):salida): 4092: Estado pantalla 4093: Dato pantallap 4094: Estado teclado 4095: Dato teclado

Bit Z: Z=1 si el resultado de la última operación en la ALU ha sido 0.

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 3

1. Modelo estructural

DIFERENCIAS CON SÍMPLEZ

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 4

TEMATEMA:Modelo de máquina elemental: Símplez+I3

1. Modelo estructural

2. Modos de direccionamiento

3. Modelo funcional

4. Convenios simbólicos

5. Ejemplosj p

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

2. Modos de direccionamiento

EN SÍMPLEZ… En Símplez el direccionamiento es directo: lo que contenga el

CD di t t l di ió d f i l MPcampo CD es, directamente, la dirección de referencia en la MP, o dirección efectiva, DE.

LD /4 (la dirección efectiva del dato que quiero cargar en el LD /4 (la dirección efectiva del dato que quiero cargar en el acumulador es 4)

CONCEPTO DE DIRECCIÓN EFECTIVA (DE)CONCEPTO DE DIRECCIÓN EFECTIVA (DE)

Dirección de la MP donde está el dato.

CRITERIO DE NOTACIÓN

Utilizar paréntesis para indicar contenido, sea de un registro o deun campo de un formato o de una posición de memoria

CRITERIO DE NOTACIÓN

un campo de un formato o de una posición de memoria. (AC) representará el contenido del acumulador (CD) el contenido del campo CD del formato de instrucciones

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 6

(CD) el contenido del campo CD del formato de instrucciones (4) el contenido de la posición de memoria 4 (equivalente a MP[4])

2. Modos de direccionamiento

FORMATO DE INSTRUCCIONES

CD sólo tiene seis bits, por lo que directamente sólo 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ó l l d )instrucción no opera con registro, no importa el valor de R):

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

Los bits 7 y 6 ("J" e "I") indican el modo de direccionamiento:J 0 I 0 di i i t di t (i l Sí l ) J=0, I=0: direccionamiento directo (igual que en Símplez)

J=0, I=1: direccionamiento indirectoJ=1 I=0: direccionamiento indexado

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 7

J=1, I=0: direccionamiento indexado J=1, I=1: direccionamiento indirecto e indexado

2. Modos de direccionamiento

DIRECCIONAMIENTO DIRECTO Lo que contenga el campo CD es, directamente, la dirección de

f i l MP di ió f ti DEreferencia en la MP, o dirección efectiva, DE.

DE=(CD)( )

LD 1 (directo)

DATO001

[1]000001000001

(C )

000001000

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 8

DE=(CD)=1

2. Modos de direccionamiento

DIRECCIONAMIENTO INDIRECTO Lo que contenga el campo CD es la dirección de una palabra

d l MP ti l di ió f ti ( d i CDde la MP que contiene la dirección efectiva (es decir, CD tiene la dirección del puntero al operando).

DE=((CD))

LD 1 i di tLD 1 indirecto

4[1]001 000001001

DATO[4]

001

DE=((CD))=(1)=4

000001001

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 9

[4]DE ((CD)) (1) 4

2. Modos de direccionamiento

DIRECCIONAMIENTO INDEXADO Para calcular la dirección efectiva hay que sumar el contenido

d l i t d í di Xdel registro de índice, X.

DE=(CD) + (X)DE=(CD) + (X)

X 3LD 1 i d d X=3LD 1 indexado

001 000001010

DATO[4]

001

DE=(CD) + (X)= 1 + 3 = 4

000001010

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 10

DE (CD) (X) 1 3 4

2. Modos de direccionamiento

DIRECCIONAMIENTO INDIRECTO E INDEXADO

Aplicación conjunta de los dos tipos de direccionamiento. El p j pconvenio de orden es postindexación, es decir, primero se acude al puntero para buscar la dirección (direccionamiento i di ) l l id d X (di i iindirecto) y luego se suma el contenido de X (direccionamiento indexado).

DE=((CD))+(X) DE=( (CD)+(X) )DE=((CD))+(X)

X=1LD 1 indirecto e indexado

DE=( (CD)+(X) )

3[1]

001 000001011DATO[4]

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 11

DE=((CD)) + (X)= (1)+(X)= 3+(X) = 3+1 = 4DATO[4]

2. Modos de direccionamiento

DIRECCIONAMIENTO INMEDIATO

Tenemos un operando inmediato Tenemos un operando inmediato. El operando es directamente el contenido del CD

Se habla de "direccionamiento inmediato" pero no se direcciona Se habla de direccionamiento inmediato , pero no se direcciona la MP, ya que el operando se extrae de la misma instrucción.

Operando = (CD)p ( )

LD 1 inmediato

[1]

LD 1 inmediato

[1]

101 000001000 [2]

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 12

[4]DE Operando = DATO = (CD) = 1

2. Modos de direccionamiento

DIRECCIONAMIENTO INMEDIATO

La utilidad de este modo de direccionamiento se encuentra La utilidad de este modo de direccionamiento se encuentra cuando se quiere introducir un valor inicial en el registro AC o en el registro X: evita la necesidad de tener previamente g palmacenado 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).

También se utiliza con la instrucción de resta.

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 13

2. Modos de direccionamiento

TABLA RESUMEN

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 14

TEMA:TEMA:Modelo de máquina elemental: Símplez+

1. Modelo estructural

2. Modos de direccionamiento

3. Modelo funcional

4. Convenios simbólicos

5. Ejemplosj p

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

3. Modelo funcional

Modelo funcional Convenio representación datos e instrucciones

CONVENIO REPRESENTACIÓN DATOS E INSTRUCCIONES

p Repertorio de instrucciones

Datos (igual que en Símplez)

CONVENIO REPRESENTACIÓN DATOS E INSTRUCCIONES

( g q p ) Números enteros no negativos Caracteres

Formato de instrucciones:

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 16

3. Modelo funcional

FORMATO DE INSTRUCCIONES

CD sólo tiene seis bits, por lo que directamente sólo 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ó l l d )instrucción no opera con registro, no importa el valor de R):

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

Los bits 7 y 6 ("J" e "I") indican el modo de direccionamiento:J 0 I 0 di i i t di t (i l Sí l ) J=0, I=0: direccionamiento directo (igual que en Símplez)

J=0, I=1: direccionamiento indirectoJ=1 I=0: direccionamiento indexado

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 17

J=1, I=0: direccionamiento indexado J=1, I=1: direccionamiento indirecto e indexado

3. Modelo funcional

Las instrucciones "CLR" y "DEC" (101 y 110) quedarán REPERTORIO DE INSTRUCCIONES

sustituidas por otras más potentes: LD# y SUB#. Las demás instrucciones tienen los mismos significados que

Sí l l i i i ien Símplez, con las siguientes matizaciones: "ST", "LD" y "ADD" (000, 001 y 010) pueden almacenar, cargar,

o sumar a respectivamente el acumulador AC o el registro Xo sumar a, respectivamente, el acumulador AC o el registro X. La condición para la bifurcación en "BZ" sigue siendo que el

resultado de la última operación en la UAL haya sido cero. En p ySímplez esto es equivalente a decir que el contenido del acumulador sea cero, pero NO EN SÍMPLEZ+I3, porque los resultados pueden ir al acumulador o al registro Xresultados pueden ir al acumulador o al registro X.

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

Solamente se puede restar en inmediato!!!

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 18

Solamente se puede restar en inmediato!!!

3. Modelo funcional

REPERTORIO DE INSTRUCCIONES

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 19

3. Modelo funcional

RESUMEN: DIRECCIONAMIENTOS vs INSTRUCCIONES Tenemos, por tanto, las siguientes posibilidades en cuanto a , p , g p

modos de direccionamiento:

Si el código de operación es 000, 001 ó 010 (ST, LD o ADD), entonces el modo de direccionamiento para llegar al operando viene dado por la tabla del apartado 2viene dado por la tabla del apartado 2.

Si el código de operación es 011 ó 100 (BR o BZ) el valor que Si el código de operación es 011 ó 100 (BR o BZ) el valor que tenga el bit 8 es indiferente y el modo de direccionamiento para llegar a la dirección de bifurcación viene dado también con la tabla del apartado 2.

Si l ódi d ió 101 (LD # lit l) ó 110 (SUB #

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 20

Si el código de operación es 101 (LD # cargar literal) ó 110 (SUB # restar literal) el modo de direccionamiento es siempre inmediato.

TEMATEMA:Modelo de máquina elemental: Símplez+I3

1. Modelo estructural

2. Modos de direccionamiento

3. Modelo funcional

4. Convenios simbólicos

5. Ejemplosj p

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

4. Convenios simbólicos

Seguiremos utilizando los convenios simbólicos de Símplez Seguiremos utilizando los convenios simbólicos de Símplez (códigos de operación nemónicos, direcciones en decimal).

Pero ahora tenemos que ampliar esos convenios para incluir la información sobre:información sobre: El registro utilizado El modo de direccionamiento.

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 22

4. Convenios simbólicos

Escribiremos a continuación del código " A" o " X" para indicarREGISTRO UTILIZADO

Escribiremos, a continuación del código, .A o .X para indicar que se opera con AC o con X

Después, si la instrucción hace referencia a MP, una coma y finalmente la dirección.

"Cargar en el registro X el contenido de la palabra

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 23

Cargar en el registro X el contenido de la palabra cuya dirección es 7".

4. Convenios simbólicos

Direccionamiento Directo

MODO DE DIRECCIONAMIENTO

Direccionamiento Directo

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 24

4. Convenios simbólicos

Direccionamiento indirecto

MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto

Se indica el direccionamiento indirecto mediante corchetes.

"Sumar al contenido de X el contenido de la palabra cuya dirección efectiva es MP[3] dejando el resultado en X"

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 25

dirección efectiva es MP[3], dejando el resultado en X".

4. Convenios simbólicos

Direccionamiento indirecto

MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 26

4. Convenios simbólicos

Direccionamiento indexado

MODO DE DIRECCIONAMIENTO

Direccionamiento indexado

Se indica que escribiendo [.X] tras la dirección.

"Sumar al contenido de X el contenido de la palabra cuya d ó f ( ) d l l d "

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 27

dirección efectiva es 3+(X), y dejar el resultado en X".

4. Convenios simbólicos

Direccionamiento indexado

MODO DE DIRECCIONAMIENTO

Direccionamiento indexado

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 28

4. Convenios simbólicos

Direccionamiento indirecto e indexado

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 ó f [ ] ( ) d l l d "

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 29

dirección efectiva es MP[3]+(X), y dejar el resultado en X".

4. Convenios simbólicos

Direccionamiento indirecto e indexado

MODO DE DIRECCIONAMIENTO

Direccionamiento indirecto e indexado

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 30

4. Convenios simbólicos

Direccionamiento inmediatoMODO DE DIRECCIONAMIENTO

Se representa con # delante del operando inmediato. Para cargar utilizamos el mismo nemónico de la carga con g gdireccionamiento (LD) y para la resta SUB.

"Cargar un 10 en el registro X"

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 31

"Cargar un 10 en el registro X" .

4. Convenios simbólicos

Direccionamiento inmediatoMODO DE DIRECCIONAMIENTO

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 32

TEMATEMA:Modelo de máquina elemental: Símplez+I3

1. Modelo estructural

2. Modos de direccionamiento

3. Modelo funcional

4. Convenios simbólicos

5. Ejemplosj p

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3

5. Ejemplo 1: Sucesión de Fibonacci

Sumar los 10 primeros términos de la sucesión

Pseudocódigo

PEN=0; ULT=1;SUM=1; CONT=8;Mientras CONT≠0

SIG=PEN+ULT;S S S GSUM=SUM+SIG;PEN=ULT;ULT SIGULT=SIG;CONT--;

FinMientras

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 34

FinMientras

5. Ejemplo 1: Sucesión de Fibonacci

Ensamblador BUCLE BZ /FINORG 0BR /INI

LD .A, /PENADD .A, /ULT

PEN RES 1ULT RES 1S G S

ST .A, /SIGADD .A, /SUM

SIG RES 1SUM RES 1INI LD A #0

ST .A, /SUMLD .A, /ULTST A /PENINI LD .A, #0

ST .A, /PENLD A #1

ST .A, /PENLD .A, /SIGST A /ULTLD .A, #1

ST .A, /ULTST A /SUM

ST .A, /ULTSUB .X, #1BR /BUCLE

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 35

ST .A, /SUMLD .X, #8

BR /BUCLEFIN HALT

5. Ejemplo 2: Suma 100 elementos de una tabla

Sumar los 100 números situados entre las posiciones 50 y 149 dejando el resultado en la posición 15050 y 149, dejando el resultado en la posición 150.

1) Versión indexada1) Versión indexada

PseudocódigoPseudocódigo PSUMA=150;*PSUMA=0;X=100;Mientras X≠0

X--;*PSUMA+=TAB[X];

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 36

FinMientras

5. Ejemplo 2: Suma 100 elementos de una tabla

Ensamblador

ORG 0/ G

ORG 50BUCLE BZ /FINSUB X #1BR /INIPRG

PSUMA DATA SUMACIEN DATA 100

TAB DATA 23.

SUB .X, #1ADD .A, /TAB[.X]SUB X #0CIEN DATA 100

INIPRG LD .A, #0ST .A, [/PSUMA]

.

.DATA 31

SUB .X, #0BR /BUCLE

FIN ST .A, [/PSUMA]LD .X, /CIEN SUMA RES 1

ENDHALT

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 37

5. Ejemplo 2: Suma 100 elementos de una tabla

Sumar los 100 números situados entre las posiciones 50 y 149 dejando el resultado en la posición 15050 y 149, dejando el resultado en la posición 150.

1) Versión con punteros1) Versión con punteros

PseudocódigoPSUMA=150; PTAB=149;*PSUMA 0Pseudocódigo *PSUMA=0;X=100;Mientras X≠0

*PSUMA+=*PTAB;PTAB--;X--;

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 38

FinMientras

5. Ejemplo 2: Suma 100 elementos de una tabla

Ensamblador

ORG 0BR /INIPRG

ORG 50TAB DATA 23

BUCLE BZ /FINLD A [/PTAB]BR /INIPRG

PSUMA DATA SUMADTAB DATA FTAB

TAB DATA 23..

LD .A, [/PTAB]ADD .A, [/PSUMA]ST A [/PSUMA]

PTAB RES 1CIEN DATA 100INIPRG LD A #0

.

.FTAB DATA 31

ST .A, [/PSUMA]LD .A, /PTABSUB .A, #1

INIPRG LD .A, #0ST .A, [/PSUMA]LD A /DTAB

SUMA RES 1END

ST .A, /PTABSUB .X, #1BR /BUCLELD .A, /DTAB

ST .A, /PTABLD .X, /CIEN

BR /BUCLEFIN HALT

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 39

5. Ejemplo 3: Uso de subprogramas (resta)

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 40

5. Ejemplo 3: Uso de subprogramas (resta)

Pseudocódigo

<Principal>…E R t (B A)

<Resta> (MINU,SUSTR)RESULT=MINU;Mi t SUSTR≠0E=Resta(B,A);

…F=Resta(D C);

Mientras SUSTR≠0RESULT--;SUSTR ;F=Resta(D,C);

…<Fin>

SUSTR--;FinMientrasDevuelve RESULT;<Fin> Devuelve RESULT;

<Fin>

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 41

5. Ejemplo 3: Uso de subprogramas (resta)

Principal

…LD A /B

…LD A /DLD .A, /B

ST .A, /MINULD .A, /A

LD .A, /DST .A, /MINULD .A, /C, /

ST .A, /SUSTRLD .A, #DRET1

, /ST .A, /SUSTRLD .A, #DRET2

ST .A, /DIRRETBR /RESTA

ST .A, /DIRRETBR /RESTA

DRET1 LD .A, /RESULTST .A, /E

DRET2 LD .A, /RESULTST .A, /F

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 42

… …

5. Ejemplo 3: Uso de subprogramas (resta)

Principal ORG 0BR /INIPRGBR /INIPRG

DDRET1 DATA DRET1…ORG 62

INIPRG LD .A, /BST A /MINUST .A, /MINULD .A, /AST A /SUSTRST .A, /SUSTRLD .A, /DDRET1ST .A, /DIRRETBR /RESTA

DRET1 LD .A, /RESULTST A /E

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 43

ST .A, /E…

5. Ejemplo 3: Uso de subprogramas (resta)

Subprograma

RESTA BR /INIRUTMINU RES 1

BUCLE BZ /FINRESTASUB .A, #1

SUSTR RES 1RESULT RES 1

SUB .X, #1BR /BUCLE

DIRRET RES 1INIRUT LD .A, /MINU

LD X /SUSTR

FINRESTA ST .A, /RESULTBR [/DIRRET]

LD .X, /SUSTR

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 44

5. Ejemplo 3: Uso de subprogramas (resta)

Subprograma (salvar y restaurar registros!)

RESTA BR /INIRUTMINU RES 1

BUCLE BZ /FINRESTASUB A #1MINU RES 1

SUSTR RES 1RESULT RES 1

SUB .A, #1SUB .X, #1BR /BUCLERESULT RES 1

DIRRET RES 1RA RES 1

/FINRESTA ST .A, /RESULT

LD .A, /RARX RES 1INIRUT ST .A, /RA

, /LD .X, /RXBR [/DIRRET]

ST .X, /RXLD .A, /MINU

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 45

LD .X, /SUSTR

5. Ejemplo 3: Uso de subprogramas (resta)

Subprograma (otro modo de pasar los parámetros)PRUT DATA RESTA

…LD X #1

RESTA BR [/PINIRUT](parámetro ent 1)LD .X, #1

LD .A, /BST .A, [/PRUT][.X]LD X #2

(parámetro ent. 1)(parámetro ent. 2)(parám salida)LD .X, #2

LD .A, /AST .A, [/PRUT][.X]

(parám. salida)(dir. retorno)

, [/ ][ ]LD .X, #4LD .A, #DRET1ST A [/PRUT][ X]

ST .A, [/PRUT][.X]BR [/PRUT]

DRET1 LD .X, #3

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 46

LD .A, [/PRUT][.X]ST .A, /E

5. Ejemplo 4: Problema de inicializar con DATA

Ejecuciones sucesivas deben funcionar sin recargar!

BR /INIVALOR DATA 100

BUCLE LD .A, /CONTBZ /FINVALOR DATA 100

VAR RES 1CONT DATA 20

BZ /FINSUB .A, #1ST .A, /CONTCONT DATA 20

INI LD .A, /VALORST .A, /VAR

, /LD .A, /VARSUB .A, #1,ST .A, /VARBR /BUCLE

FIN HALT

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 47

5. Ejemplo 5: Llenar vector por teclado

En la memoria de un ordenador Símplez+i3 se pretende almacenar un vector. El vector comienza en una dirección cuya etiqueta es DV, y cada y q yuno de los elementos ocupa una palabra de memoria.

Se pide realizar un programa en ensamblador que introduzca datos en el vector, leyéndolos del teclado por espera activa. Para realizar esto , y p phay que tener en cuenta que por el puerto de entrada aparecerán sucesivamente el índice que indica la posición que ocupa el elemento en el vector y el valor del elemento. La última posición a la que se da valor es la posición 0. El programa parará después de almacenar el valor correspondiente.

Las direcciones del puerto de entrada tienen como etiquetas CONTROL p qy DATOS, y se suponen definidas.

La etiqueta DV se supone definida. El programa deberá funcionar independientemente de la posición a que El programa deberá funcionar independientemente de la posición a que

apunten DV, CONTROL y DATOS. Se supone que los índices y valores de los elementos del vector son

inferiores a 10

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 48

inferiores a 10.

5. Ejemplo 5: Llenar vector por teclado

Pseudocódigo

X=0;PV=DV;PV DV;HACER

MIENTRAS CONTROL==0FIN MIENTRASX=DATOS;MIENTRAS CONTROL==0FIN MIENTRASVALOR=DATOS;PV[X]=VALOR;

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 49

MIENTRAS X!=0

5. Ejemplo 5: Llenar vector por teclado

Ensamblador:BUCLEESP1 LD A [/DCONTROL]

ORG 0BR /INI

ESP1 LD .A, [/DCONTROL]BZ /ESP1LD .X, [/DDATOS]BR /INI

DDV DATA DVDDATOS DATA DATOS

, [/ OS]SUB .X, #48

ESP2 LD .A, [/DCONTROL]DDATOS DATA DATOSDCONTROL DATA CONTROLPV RES 1

[ ]BZ /ESP2LD .A, [/DDATOS]PV RES 1

INI LD .X, #0LD .A, /DDV

SUB .A, #48ST .A, [/PV][.X],

ST .A, /PV SUB .X, #0BZ /FINBR /BUCLE

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 50

BR /BUCLEFIN HALT

5. Ejemplo 6: Subrutina para multiplicar

R li ti bl d d Sí l i3 Realizar una rutina en ensamblador de Símplez+i3 que multiplica dos números. La rutina recibe en el registro AC una dirección de memoria La rutina recibe en el registro AC una dirección de memoria. A partir de dicha dirección se encuentran almacenados (por este orden), el primer factor, el segundo factor y laeste orden), el primer factor, el segundo factor y la dirección de retorno; el resultado se devuelve en el registro AC.

Las instrucciones de la rutina se ensamblarán a partir de la dirección 20; no existe programa principal. Es preciso d fi i l ti t tili li ldefinir las etiquetas que se utilicen y explicar las operaciones realizadas.

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 51

5. Ejemplo 6: Subrutina para multiplicar

Ensamblador:LD .X, #1LD .A, [/DIR][.X]

ORG 20MULTIP BR /INIRUT

, [/ ][ ]ST .A, /F2LD .X, #2

MULTIP BR /INIRUTF1 RES 1F2 RES 1

LD .A, [/DIR][.X]ST .A, /DRET

F2 RES 1DIR RES 1DRET RES 1

LD .A, #0LD .X, /F2

DRET RES 1RX RES 1INIRUT ST .X, /RX

BUCLE BZ /FRUTADD .A, /F1SUB X #1

,ST .A /DIRLD .A, [/DIR]

SUB .X, #1BR /BUCLE

FRUT LD X /RX

FUNDAMENTOS DE COMPUTADORES – Ingeniería de Telecomunicación 52

ST .A, /F1FRUT LD .X, /RX

BR [/DRET]

TEMA 4TEMA 4:Modelo de máquina elemental: Símplez+I3

J. Iván Maza Alcañiz

Dpto. Ingeniería de Sistemas y Automáticap g y

Escuela Superior de Ingenieros

Universidad de SevillaUniversidad de Sevilla

Bibliografía:REF: Conceptos básicos de arquitectura y sistemas operativosREF: Conceptos básicos de arquitectura y sistemas operativosAUTOR: Gregorio Fernández.PÁGs: Capítulo 3