• No se han encontrado resultados

DIVISION DE CIENCIAS BASICAS E INGENIERIA CARRERA INGENIERIA ELECTRONICA AREA DE CONCENTRACION COMPUTACION

N/A
N/A
Protected

Academic year: 2018

Share "DIVISION DE CIENCIAS BASICAS E INGENIERIA CARRERA INGENIERIA ELECTRONICA AREA DE CONCENTRACION COMPUTACION"

Copied!
36
0
0

Texto completo

(1)

Casa abierta al tiempo

UNIVERSIDAD AUTONOMA METROPOLITANA

UNIDAD IZTAPALAPA

DIVISION DE CIENCIAS BASICAS E INGENIERIA

CARRERA INGENIERIA ELECTRONICA

AREA DE CONCENTRACION COMPUTACION

PROYECTO DE INGENIERIA ELECTRONICA I

y

I1

NOMBRE DEL PROYECTO:

SIMULADORES DE MICROPROCESADORES

ASESOR:

Dr. Adriano de Luca P.

d

l

1 /

& + , I

c.

L- L.4 i/

(f

tz

3

ALUMNO:

Román Rodriguez Cortez

MATRICULA

85328961

(2)

ANTECEDENTES

Interesado en realizar el proyecto de Ingeniería Electrónica Y y I1 referente a material de

apo!'o didlictico para los alumnos de la Universidad, me enteré de que existía un simulador de

~/licropl.occsadores llamado UAMICRO, con el cuál se pretende que los alumnos obtengan una

m a y o r compresion sobre los microprocesadores y su funcionalidad.

M i

interés aumentó cuando al probar el simulador, me di cuenta que como usuario del

sistcma. IC hacian M t a opciones con las cuales el manejo del simulador sería mas comodo. Las

opciones q u e me di cuenta como usuario. que le hacían falta para tener un ambiente de uso mas

amigable son:

- !\grcgar cl nombre del archivo que se está trabajando.

- I n c o r p o r a r un Shell que permita salir temporalmente al sistema operativo sin tener que

:~bandonar la IJAMICRO.

- ilgregar u n m6dulo que permita ver que archivos hay el directorio de trabajo

- ('lasilicar los programas generados en cada una de las UAMICROS para identificarlos

- :\dcmas d e salvar los programas de las UAMICROS, almacenar las condiciones iniciales de los

(3)

INTRODUCCION

.\ctualmentc. el gran avance en la arquitectura de computadoras ha logrado que esta

herramienta sea prácticamente perfecta y tan versatil que en la vida diaria no es extraíio

u1contr;lrnos con una computadora realizando alguna tarea. Debido a la gran demanda de

urilizar computadoras cada vez mas veloces y compatibles con los programas mas usados, nos

cncontl-anms que hoy en día existen varias compañías internacionales (tales como INTEL, AMD,

MO'I'OROLA y CYRIX. entre otras), que se encuentran en una competencia por el desarrollo de

micloproccsadores cada vez mejores.

I:stc desarrollo de microprocesadores ha llevado a que los profesionales nivel licenciatura

o ingcniel-ía deban conocer las bases sobre las cuales se está construyendo una forma de vida muy

(4)

OI3.JETIVOS:

I : n cl presente proyecto, se plantean los siguientes objetivos:

a ) Iinriquecer y actualizar las opciones del simulador del microprocesador UAMICRO relizado en

l a unidad Iztapalapa, el cual fue creado con el fin de apoyar a la enseñanza del

con~portan?iento de microprocesadores.

I > ) M o s ~ r a r el uso de la programación orientada a objetos implementandola al codigo fuente de la

II.J2\/ZICRO.

c ) Agregar c.jemplos que permitan a los alumnos de la materia de Sistemas Digitales

l'uniliarizarse con el desarrollo de programas en lenguje ensamblador.

(5)

Opciones agregadas al simulador de la UAMICRO.

:\ continuación se detalla el funcionamiento de las opciones que se agregaron al simulador

I :,AMIC’RO con el tin de facilitar su uso,

I:n

l a p ; ~ n ~ a l l a de traba-jo presenta el nombre del archivo que esta en uso.

I .;I opciion ARCHIVO del menu contiene dos opciones mas:

I ~ I I ~ I - ~ C ~ I ~ O R I O .- El cual permite ver el directorio en uso, listando los archivos con sus

características de tamaiio. fecha y hora

I)OSSI-I ELAL .- Que permite salir temporalmente del simulador dejándolo residente para realizar

alguna operation del sistema operativo, tal como ejecutar algún programa, copiar archivos, etc.

(‘ucnta con la opcion de preguntar si se desea salvar el archivo cuando se va a terminar de usar el

simulador o cuando se cambia de UAMICRO al detectar cambios en los registros o la memoria.

I : I I simulador cuenta con el agregado de una extension automatica con el fin de poder clasificar

los archivos hechos en alguna de las UAMICRO.

(6)

I a m h i d n sc' incorporó la opcion de guardar automáticamente los valores de los registros de cada

I ':\MI('RO. con el

tin

de tener cargado las condiciones iniciales de operacion de los programas

IlccIlos cn alguna de las UAMICRO.

(7)

I'ROGIIAMACION ORIENTADA

A

OBJETOS

.,

\ ;I cluc en el codigo fllente de la UAMICRO se implementaron módulos con

p r o g r ; m x i c i n orientad a objetos. explicaremos algunos conceptos importantes para efectuar dicha

I ~ ~ ' o s ~ - ~ ~ ~ l l a e i 6 n .

U n ob.jeto cs una construccion que combina datos y registros, es también llamado clase.

I I n objeto es una instancia que se define con una serie de datos y procesos que son naturales para

c1 ol!jcto. a s i pues tenemos que un objeto es un conjunto privado de datos y procedimientos o

I'uncioncs que actúan sobre los datos privados.

1)or c.jemplo. si queremos realizar un programa que dibuje figuras geometricas, tenemos que usar

u n enlbque orientado a objetos para poder resolver el problema:

- I'ara todas las figuras, sabemos que todas ellas deben tener una posicion y un tamaño, por lo que

ilucstros objetos deben tener sus datos especificos así como una rutina que inicialice esos datos.

- Por o t r o lado. las figuras geométricas tienen características bien definidas tales como un color.

1111 rellcno. etc. por lo que los objetos deben tener una seccion con la cual se pueda mtivnr el

l',Y/¡lO.

- l)or i l t l i m o tenemos que generar las figuras geometricas por 10 que se necesita incorporar una

r u t i n a ~ L K Ius d i h j e .

(8)

1,;s ob\,io que varias figuras poseen otras características pero las tres anteriores son comunes a

ioclas aunque 110 tengan el mismo numero de parametros con los cuales se inicialice, seleccione el

c k h t i l o y dibL!ic.

OIkJETOS EN TURBO PASCAL

I .;I sintaxis que se emplea en turbo pascal (version 6 o posterior) para definir un objeto es de la

nombre t i p o = OBJECT

<lista de campos o procedimientos>

END

l ) o r eiemplo para definir un objeto Circulo podemos declararlo de la manera siguiente:

I'YI'F

IigLu-aCircLilo = OIUECT

x,y : INTEGER; Radio,Color: Word;

PROCEDURE Inicializar(CordX, CordY : INTEGER; Rad :WORD); PROCEDURE SelEstilo(Co1or: WORD);

PROCEDURE Dibuja:

END:

/\I clelinir el objeto con las variables y procedimientos clue los caracterizan, debemos saber COMO

su especilican las rutinas declaradas en el objeto. Por ejemplo el procedimiento Inicializar

potlemos dcfinirlo de la siguiente manera:

(9)

hotcst: qut: estamos haciendo mencion de las variables declaradas en el objeto, asi como a los

parrimetros delinidos en el procedimiento.

. \ h o r a . para hacer uso del objeto, debemos deciarar una variable de el tipo de objeto:

p r a haccr una llamada a los procesos de los objetos debemos llamarlos de l a siguiente manera:

I:sto es. para hacer una llamada a un procedimiento o una variable del objeto debemos

ulilizar cl punto y el nombre de la variable o procedimiento que esta definido en él.

~ ’ u a n d o se declaran procedimientos y funciones dentro de un objeto, dichas funciones y

I”nct:ciimientos son llamados metodos.

(10)

l\uncpe los campos de un objeto pueden ser modificados desde el exterior, por cuestiones

clc I;I lilosolia de la programación orientada a objetos, solamente los metodos estan capacitados

p ~ r a manipular los datos del ob.jeto.

HERENCIA.

i clc las propiedades de la programacion orientada a objetos es l a herencia. Cuando un objeto

se dcri\x dc otro ob.jeto se le heredan todas las propiedades de los campos del objeto viejo.

l’or c.jen1plo si tenemos un objeto objl y un objeto obj2 se construye usando obj 1.

cntonccs ob.12 tiene todas las propiedades de obj 1 mas las que se definan para obj2:

oI>-j2 posee l o s campos x,y,z,Inicializa y Pinta mientras que obj 1 solo posee x,y,Inicializa

IMPLEMENTACION DE LA PROGRAMACION ORIENTADA A OBJETOS EN LA

Il.4MIC’RO

(11)

l~0~S~Y11L1.l~

D E

LA C!4hfICRO

Ahora. regresando a la ilnplementacion de los módulos incorporados a las UAMICRO.

tlclinimos u11 objeto llamado Aplicacion, el cual se encarga de dejar residente al simulador

! i,~IMIC'RO ! cargar el COMMAND.COM para realizar alguna operacion en el sistema

! >icho modulo fue declarado de la siguiente manera:

.I'\'PE

:\plicacion = ob.ject(TApplication)

procedure Shell; end:

c 'c~mo se observa, el objeto tambien tiene una herencia del objeto Tapplication de Turbo

h s c d 7. dcl cual se utilizaron los metodos Init y Done.

I C 1 ol?jeto Tapplication es parte de una librería de objetos llamada Turbo Visión, la cual

contiene una cantidad de objetos que incluyen:

- Vcntanas basadas en caracteres.

- Vcntanas nlultiples redimensionables y solapamiento

- I3arras de desplazamiento.

- Mcnils desplegables.

- Soporte de ratón.

- Recuadros de comprobación

- ('uadros dc diálogo.

- I nstalacion de colores incorporados.

(12)

- 12otones. barras de desplazamiento, cuadros de entrada, cuadros de entrada, cuadros de

verificación y botones de radio.

- 'l'ratamiento estandar de pulsaciones y selecciones del ratón.

I .os metodos Init J. Done son el constructor y destructor respectivos con los cuales se llama al

cocligo q u c establece el soporte del metodo virtual y al codigo que libera los objetos virtuales.

~ME'1OI)OS VIRTUALES Y ESTATICOS

1 ' 1 1 mctodo estatico es aquel que se determina completamente cuando el programa se compila.

1 i n mctodo virtual es aquel que pospone cualquier decision sobre qué metodos se eligen cuando

c l programa está e.jecutándose o sea que no se realiza conexion a ellos hasta que el programa se

cstli c.jccutando y se envía realmente la llamada a ellos.

I:I metcdo init construye un objeto Tapplicatfon inicfalizando los subsistemas de Turbo Visión

( Mcmot~ia. Video. k:ventos. Errores del sistema e Historial de manejadores);

(13)

Volviendo a la implementación del DosShell en la UAMICRO. tenemos clue el ~ ~ r o c c d i ~ n i e n t o Shell definido en el objeto fLlé programado de la siguiente manera:

J' la llamada al objeto es hecha en un procedimiento que hace llamadas a los objetos

hcrcdados del objeto Tapplication de la manera siguiente:

l~I<OC'li)lURE DosShell;

13E(;lN

IicstorcCrtMode; (reestablece el modo texto)

p;lrlsa.I nit: {inicializa los subsistemas de Turbo Vision tales como memoria, video,

pLLlsa.Sllcll: {llama al procedimiento que permite salir al sistema operativo}

pausa.l)one: {destruye el ambiente del shell1 una vez que regresa }

c t c

;

Sct(;raphMode( GetGraphMode); (regresa al modo grafico de la UAMICRO}

(14)

VER 1)IKECTORIOS

EN

LA

UAMICRO

I ,a implementación de l a opcion para ver el directorio de trabajo fue hecha de la siguiente

m~rncra:

)'a clue en Turbo Pascal existen las opciones para cambiar al modo texto y a l modo

yralico. sc hizo uso de éstas rutinas el desplegado del directorio.

I : I modulo para encontrar los archivos presentes en un directorio así como las rutinas para

ordenar y desplegar el Directorio se muestran a continuación.

procedture 1,'indFiles;

1 encuentra los archivos del directorio actual}

\ ;Ir

I:: ScarchRec;

C ' s u n t := o ;

I.'inclFirst( Path, ReadOuly + Directory + Archive, F);

while (DosError = O) and (Count < MaxDirSize) do

bc: i I1

hcgin

C;etMem( Dir[Count], Length(F.Name)

+

1 O);

Move( F.Attr, Dir[Count]", Length(F.Name)

+ 1

O):

I:inclNest(F):

I nc( C:ollnt)r

cntl:

cnd:

(15)

tunction NumStr(N, D: Integer): String; hegin

NumStr[O] := Chr(D); \\hile 11 > O do

begin

N ~ ~ r n S t r [ D l := Chr(N mod 10

+

Ord('0')); N := N div IO;

I k c ( I)):

cnd:

cntl:

WriteLn('Directorio de I , Path): i1'C'ount = O then

begin

WriteL>n('No hay archivos');

e I1 d else

beg i I1

Total := O:

tor I := O to CouIIt-1 do

\\ ith Dir[1ln do

hegin

I' := Pos('"', Name);

it' P > I then begin

N := Copy(Name, 1 , P - 1);

E := Copy(Name, P

+

I , 3 ) ;

end else

begin

N := Name;

F .= I ! .

2 .

.

end:

(16)

i f W ideDir then begin

if Attr and Directory <> O then

elsc

if 1 and 3 <> 3 then

else

\;rite(' D I R )

Write((Size + 1023) shr 10: 3, 'k');

Write(' ': 3) WriteLn: end

clse begin

if Attr and Directory <> O then

else

lj,lpackTime(Time, T); WriteLn(T.Day: 4, I-'.

MonthStr[T.Month], I-'.

NumStr(T.Year mod 100, 21,

T.Hour: 4. I : ' .

NumStr(T.Min, 2)); Write('<DIR> ' ) Write(Size: 8):

end:

Inc(Tota1. Size); cnd;

i f WideDir and (Count and 3 <> O) then WriteLn: WriteLn(Count, ' Archivos. '. Total, bytes, I,

Disltl'ree(Ord(Path[ 11)-64), ' bytes libres'); end:

I~eaclln:

cncl: printtiles)

(17)

<

'on10 vemos en el procedimiento principal (Director), el procedimiento encontrará,

o r c i m u - 5 J. desplegará los archivos asi como los directorios que encuentre en la ruta path que se le

cspxilicluc. Para la UAMICRO, se designó que desplegara el directorio en forma de lista y todos

los archivos. aunque se pueden enviar como parámetros la forma de desplegado (ya sea en lista o

c11 horimntal) >' el tipo de archivos (ya sea por nombre o extensión).

(18)

(;IiAIII)AII AKCHIVOS

I .;I opcicin de guardar los archivos que se generan en la UAMICRO fué modificada ya que

:Illtcriormcnte no tomaba en cuenta el que se modificara un archivo y el simulador considerara

pcrlincntc cl preguntar si se desean guardar los cambios antes de salir.

I ,;t opcion de guardar quedó estructurada de la siguiente manera en el codigo fuente de la

I ~ . ' l M I ( * l < O :

PROCEDURE Guarda-en-disco( version : integer );

Procedimiento para salvar en disco el contenido de l a memoria f

V

AI<

resultadoj : INTEGER; nom arch-sal, paso : cadena; arch sal : TEXT;

si existe : BOOLEAN;

al-ch-car := 'I:

AbrirVentana(9) ;

settextstyle( SMALLFONT,HOR setlillstyle( 1 ,gris oscuro ) ;

sctcolor(b1anco) ;

-

-

BEC~IN

-

.IZ ,DIR,4 ) ;

outtextxy(270.0.'<RET> "NONAME"'); REPEAT

resultado := Lee alnum ( 1 O,O, 12,'>',arch_car);

IF resultado <>

27

THEN

IF a r c h c a r = THEN

case version of I3EGIN

arch - car := 'NONAME': { archivo de "default"

I : arch car:=arch car+'.OO 1 ';

2: arch car:=arch car+'.002': 3: arch car:=arch car+'.OO3';

- - - -

end;

IF Existe (arch-car) THEN

- -

BEGIN

si existe := TRUE; AirirVentana( 1 O) ;

outtextxy( 1 O,O,arch-car+' ya existe borrar '? (S/N)'); REPEAT

tecla := ReadKey :

tecla := UpCase (tecla)

(19)

IJNTIL tecla IN ['S','N']; Cerrarventana ;

END ELSE

si-existe := FALSE;

END;

[JNTIL (resultado = 27) OR (NOT si - existe) OR ((si-existe) AND (tecla = 'S')); I F resultado <> 27 THEN

U EGIN

tlssign (arch-sal,arch-car); Rewrite (arch-sal);

¡:OR i := O TO lim - memoria DO

BEGIN

Hexa (i,paso);

Write (arch-sal,paso); Write (arcll-sal,' I):

Hexa (mem[i],paso); Writeln (arch-sa1,paso) END;

Close (arcll-sal);

(;uardaReg(version,arch car); END ;

Cerrarventana ;

-

END: Guarda-en-disco ]

1-11 cl c6digo anterior se observa que se hace una llamada al procedimiento GuardaReg, el

cual sc incorporó al simulador para guardar el estado de los registros de la version de UAMICRO

q t x se estulriera usando. El codigo para guardar los registros se muestra a continuación.

I'ROCEDURE SaveRec (VAR

fi1ereg:TEXT;version:INTEGER);

t

salva los registros de l a uamicro x en disco en formato hexadecimal

1

v

,4 I-?

la.l-b,rar.rir,rpc,rout,rl~ar,rin,rindx,rb~,rrio,rsf,rsp:cadena; I3EGIN

('ASE VERSION OF

1 : BliGIN

(20)

Hexa(reg[IR],rir); WriteLn(filereg,rir); Hexa(reg[PC],rpc); WriteLn(filereg.rpc); Hexa(reg[OUT],rout): U'riteLn(filereg,rout); Hexa(reg[MAR],rmar); WriteLn(filereg,rnlar); END: 3: BEGIN IHexa(reg[A],ra); WriteLn(filereg,ra); €Hexa(reg[B],rb); U'riteLn(filereg,rb); Hcxa(reg[AR],rar);

M! riteLn(filereg,rar); Hexa(reg[IR],rir);

\n/ riteLn(filereg,rir); Hexa(reg[PC],rpc); WriteLn(filereg,rpc); I-lexa(reg[OUT],rout); WriteLn(,filereg,rout); Hexa(reg[MAR],rmar); WriteLn(filereg,rmar); Hexa(reg[INPUT],rin)s WriteLn(filereg,rin); I-Iexa(reg[INDEX],rindx); WriteLn(filereg,rindx); Hexa(reg[BITQ],rbq); WriteLn(filereg,rbq); lHexa(reg[RIO],rrio); WriteLn(filereg,rrio);

END:

.

3: BEGIN

I-Iexa(reg[A],ra); WriteLn(filereg, ra); I-Iexa( reg[B],rb); WriteLn(filereg,

rb);

I-Iexa(reg[AR],rar); WriteLn(fi1ereg. rar); Hexa(reg[IR],rir);

(21)

Hexa(reg[INDEX],rindx); WriteLn(filereg, rindx); Hexa(reg[SF],rsf);

Mi siteLn(filereg, rsf); Iiexa(reg[SP],rsp); WriteLn(fi1ereg. rsp);

PROCEDURE

GuardaReg(Versi0n:INTEGER;

arch-carxad-car);

VAR

l i 1ereg:TEXT;

path:ST'RING; caracter:CHAR; ¡:INTEGER: I3I-;GIN path:=";i:=l: scpeat caracter:=arch-car[i];

IF (caracter <> ' " I ) THEN

path := path + caracter;

i:=i+l;

until caracter='.'; case version of

1 : path:=path + '.RGl';

2: path:=path + '.RG2';

3 : path:=path + '.RG3': cnd;

Assign (filereg,path): Rewrite (filereg);

SaveRec (Glereg,version);

('lox (filereg);

I

:N

11:

( ' o r n o se observa, el procedimiento utiliza el mismo nombre del archivo que se esta

u s a n d o e11 cl simulador cambiando solamente la extensión del archivo por RG1, RG2 o RG3

segun l a vcrsion de IJAMICRO que esté trabajando.

(22)

1:s de esperarse que si se implementan las rutinas para guardar los archivos con una cstcnsion l i j a J. los registros que caracterizan a la version de UAMICRO que se esté usando,

cnlonccs se deben crear las rutinas que recuperen estos archivos. Estas rutinas son las siguientes:

PROCEDIIRE Carga (version : INTEGER);

v

n

R

I'rocedimiento para cargar un programa en la memoria

archivo : TEXT; dir.

resultado : INTEGER; cad dir.

cad-cod : cad-car; caracter : CHAR;

.\brirVentana(8) ;

scttextst\:le( SMALLFONT,HORIZDIR,4 ) ;

setfillstyle( 1 ,gris-oscuro

1

;

setcolor( blanco) ;

arch ~ car := 'I:

outtcxtxq;( 270.O,'<RET> "NONAME"');

resultado := Nomb-arch(Version); {Pide el nombre del archivo y lo asigna a arc11-car}

IF resultado <> 27 THEN

-

I{IC;IN

I3EGIN

a p := o:

Assign (archivo,arch-car); Reset (archivo);

ItEPEAT

cad clir := ":

REPEAT

Rcad (archiv0,caracter); I

F

caracter <> ' ' THEN

cad dir := cad dir

+

caracter;

[INTI L caracter = I;

d i r := Decimal (cad-dir); {convierte la cadena a decimal, esta es la direccion de

I<eadln (archivo,cad cod);

mcmldir

AND

$OlFF] := Decimal (cad - cod); (escribe el codigo en memoria}

- -

mcmoria~

I TNTII, EOF (archivo);

C.LOSE (archivo):

C'arglicgistros(arch_car,Version); {carga los valores de los registros si existe e ]

a p := o ;

archivo

1

C'crrarVentana :

C'crrarVentana ;

(23)

Desensamblador (0,version); Desp - Mem (0,version);

I-ND:

I F

resultado = 27 then begin

cnd :

CcrrarVentana ; Cerrarventana

I : N D :

1

Carga

Y

cI procedimiento que carga los registros es el siguiente:

;asigna los valores almacenados de los registros de cada UAMICRO}

PROCEDURE AsigReg(VAR Apareg:TEXT; Line:cad-car; conte,Version:INTEGER); I3EGIN

case Version of

I : 13EGIN

ReadLn(Apareg, Line);conte := Decimal (line); reg[A]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[B]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[AR]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[IR]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[PC]:=conte; IieadLn(Apareg. Line);conte := Decimal (line); reg[OUT]:=conte: ReadLn(Apareg, Line);conte := Decimal (line); reg[MAR]:=conte; END:

2: BECiIN

ReadLn(Apareg, Line);conte := Decimal (line); reg[A]:=conte; ReadLn(Apareg. Line);conte := Decimal (line); reg[B]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[AR]:=conte; lieadLn(Apareg. L1ne);conte := Decimal (line); reg[lR]:=conte; ReadLn(Apareg, 1,ine);conte := Decimal (line); reg[PC]:=conte; IieadLniApareg, Line);conte := Decimal (line); reg[OUT]:=conte; fieadLn(Apareg. Line);conte := Decimal (line); reg[MAR]:=conte; ReadLn(Apareg. Line);conte := Decimal (line); reg[INPUT]:=conte; lieadLn(Apareg, Line);conte := Decimal (line); reg[INDEX]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[BITQ]:=conte; IZeadLn(Apareg, Line);conte := Decimal (line); reg[RIO]:=conte;

END:

3 : HE<JIN

ReadLn(Apareg, Line);conte := Decimal (line): reg[A]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[B]:=conte: lieadLn(Apareg, Line):conte := Decimal (line); reg[AR]:=conte; fieadLn(Apareg, Line):conte := Decimal (line): reg[lR]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[PC]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[INDEX]:=conte; KeadLn(Apareg. Line);conte := Decimal (line); reg[SF]:=conte; ReadLn(Apareg, Line);conte := Decimal (line); reg[SP]:=conte;

END:

I.:N I) { caso)

(24)

;carga los valores con los que se guardaron los registros)

I'R0CEI)URE CargRegistros(arch - car:cad - car; versi0n:INTEGER);

V A R

arch-reg: CADENA; Apareg:'TEXT; caracter:CHAR; i.conte: I NTEGER; I,inc : cad-car:

I3rX;IN

¡ : = I :

arch reg:=";

REPEAT

obt&emos el nombre del archivo de datos)

caracter:=arch-car[i]; I I caracter <> I.' THEN

arch reg := arch-reg

+

caracter; i:=i+ I ;

-

1 J N T I L caracter = l . ' ;

case version of

1 : arch reg:=arch-reg+'.RGl'; {agregamos la extension del archivo) 2: arch reg:=arch reg+'.RG2';

3 : arch - reg:=arch - reg+'.RG3'; -

- -

e11d:

I 1 E,xiste(arch reg) THEN

begin

-

Assign (Apareg,arch-reg); Rcset (Apareg);

I F NOT EOF(Apareg) THEN

close(Apareg);

AsigReg(Apareg,Line.conte,Version);

end:

I'NII:

(25)

E.IEMI'LOS DE PROGRAMAS PARA LAS UAMICROS

I , o s programas que aquí se muestran tienen el objetivo de enriquecer la cantidad de

~ : j c n ~ p l o s clue sc mencionan en el libro Sistenzus Digitalesl pero solamente se harán uso de unas

cuanlas insIrucciones de cada una de las UAMICROS.

l ; . l l ~ ~ M l ~ l , O 1

SIMIII~2,AI)OR: UAMICRO 1

~ \ I < ~ ' I I I V O : REGRES.OO1

I ) l ~ ~ S C ' R I P C l O N : cuenta regresiva de 2 en 2 desde 20h hasta OOh

' I k I.IIC;I Iknnaccllia Adriano; SIsfen~us Digitdes Libros de Texto UAM Iztapalapa; 1993

(26)

STA FI:

I I1.T

I ,os registros de la lJAMICRO 1 tienen incialmente valores igual a cero

I m w w 3

SIMIJIA:\DOR: [JAMICRO 1

ARCHIVO: CONTADOR.001

I)l?SCRITTION: Este programa despliega una cuenta ascendente desde O0 hasta OF

(27)

1.0s registros A.B.PC.AR,IR,MAR,OUT de la UAMICRO 1 se encuentran en cero

00 30

20

31

31

OA o3 O 1

o3 O O30

20

(28)

. \ continuación se presenta la operacion del simulador de microprocesador en la sección clue 1.~16 modificada.

SI M I JL>.ZDOR DE LOS MICROPROCESADORES “UAMICRO”

( ’ o n esta opción se pueden cargar en la memoria de la UAMICRO programas que se e11cuentrcn e n disco asi como salvarlos.

;\I activar la opción Archivos aparece una ventana en la UAMICRO con las siguientes opciones:

Pantalla de la UAMICRO con las nuevas opciones

J’odcmos activar una de las opciones desplazandose con las flechas arriba y abajo.

28

(29)

~ ' l I i < G A R . - A l selecionar la opcion cargar, aparece otra ventana pidiendo el nombre del

archivo a cargar. Es importante hacer notar que el nombre del archivo debe estar excento de

cstcnsion y a que el sinlulador de la una extension predeterminada. Si el archivo que se intento

cargar no existe. entonces aparece un mensaje de Error el cual desaparece presionando l a tecla

l:s('.

Pantalla que muestra la activacion de l a opción Cargar

(30)

Si el archivo existe para la version de la UAMICRO que se esta activando, entonces

ap~u"'ceran las instrucciones que corresponden al programa en la memoria del simulador, asi

como los valores con los que se guardaron los registros.

SALVAR.- A l utilizar la opcion salvar, el simulador muestra una ventana preguntando el nombre

quc tendrj el archivo. Si el archivo existe, entonces aparecerá otra ventana indicando si se desea

reemplazar el archivo. Si presiona la letra "S", el archivo será reemplazado pero si la tecla

presionada es "N", entonces el simulador pedirá otro nombre para el archivo.

(31)

I~IREC'I~ORI0.- Ai activar esta opción, el simulador nos despliega los archivos que se encuentran

cn cl Directorio actual de trabajo indicando el numero de archivos y la cantidad de espacio

o c u p a d o as¡ como l a cantidad libre, ademas de desplegar las caracteristicas de cada uno como son

I;I I'echa. hora y tamallo.

l<.jeelnplo del desplegado del Directorio al utilizar esta opcion del simulador

(32)

\)OSSI 1ELL.- Esta opción permite salir temporalmente al sistema operativo, dejando residente al

simulador. Para regresar al simulador unicamente se teclea desde el prompt del sistema la

palabra "EXIT".

Pantalla de trabajo que deja el simulador al momento de activar el dosshell

(33)

En lo personal, me pareció que la colaboración para mejorar el software del

simulador I'LK un buen avance tanto para los futuros usuarios asi como también para cumplir con

una mcta personal que es la de contribuir en la educación de futuros Profesionales de los sistemas

digitales y computacionales.

('abe aclarar que aún cuando se lograron mejoras al simulador, esto no implica que se

tenga u n sistema perfecto y uti1 para la enseñanza, sin embargo tambien se le añadieron ejemplos

que iluslran un poco mas la forma de programacion en este tipo de simuladores.

'1'ambit.n m c gustaría mencionar que aún cuando el simulador UAMICRO fué realizado en

I"4SCAL (posiblemente version 5), las modificaciones que se le incorporaron fueron hechas en la

\.crsion 7 la cual incorpora programación orientada a objetos, y permite darle al sistema un

potencial de crecimiento mayor ya que pueden ser incorporados sin ningun problema el uso del

rattin algun otro periferico.

( ' o m o se puede apreciar. el simulador UAMICRO no solo permite a los estudiantes una

me.jor comprension sobre el comportamiento y desarrollo de los microprocesadores sino que por

el lado de su mantenimiento para incorporar futuros modulos a su menú, asi como volver mas

comple.ja la arquitectura, se pueden utilizar lenguajes de programación mas actuales que

pcrmitirin tener una interface con el usuario mucho mas amigable y útil ya que el límite para

l.c, 1'. ~ ~ a r l a cs la creatividad del programador,

(34)

1:s claro que al simulador se le podrían agregar modulos que le permitan hacerlo mas

vcrsatil y poderoso por lo que una de los fines de este proyecto también es el mostrar una de las

l¿)rmas sobre c0mo realizarlos utilizando un compilador mas actual al que originalmente se utiliz6

p a r a crear l a UAMICRO.

'l'ambi&1 se mostró, por medio de los ejemplos para usar la UAMICRO, la forma de crear

pt-oy-an~as en el lenguaje ensamblador de la UAMICRO, con el fin de que los alumnos que

curscn l a materia de Sistemas Digitales o alguna afin a ella. les sea mas familiar el manejo del

Icnguajc ensamblador (de cualquier microprocesador) y comprendan mejor las arquitecturas de

l o s micropl-ocesadores.

Román Rodriguez Cortez.

34

(35)

13IBLIOGRAFIA

.loyancs Aguilar Luis. Turbo Pascal 6.0 a su alcance; Ed. Mc Graw Hill, Madrid España, 1993

I k

Luca I’ennacchia Adriano, Sistemas Digitales, UAM-IZTAPALAPA, México D.F., 1993

(36)

AGRADECIMIENTOS

A mis padres por brindarme siempre su cariño y comprensión

A mis hermanos porque son excelentes y los quiero mucho.

, \ mis Primas Laura. Lorena, Claudia, Edith y Diana porque son las mejores primas que pudiera

tcncr.

4 mis amigos: Eduardo, Fernando, Juan, Aldo porque a pesar de que nos encontremos lejos siempre contaré con ellos y los recordare.

mis amigos Martha, Arturo, y a todos mis compañeros y amigos que tuve en el transcurso de Ill¡ c;1rrt'ra

1 m i asesor porque no solo es un excelente profesor sino tambikn un buen amigo.

l : n especial a Paty por apoyarme y tenterte cerca de mí cuando mas necesite tu ayuda

A DIOS por concederme tantas cosas que he tenido sin merecerlas.

Que DIOS bendiga a todos ellos

Román

R.

C.

Referencias

Documento similar

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

Tome el MacRm media libra de Manecca de puerca ,media Je Manmca de Bac media de A- yre Rolado ,media de Azeyre Violado, y re poMc'tn holla vi- driadaafuegommfo,paza que

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

De la Salud de la Universidad de Málaga y comienza el primer curso de Grado en Podología, el cual ofrece una formación generalista y profesionalizadora que contempla

INGENIERIA CIVIL