tema4
DESCRIPTION
Tema 4TRANSCRIPT
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