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
tz3
ALUMNO:
Román Rodriguez Cortez
MATRICULA
85328961
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 delsistcma. 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
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
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.
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.
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 programasIlccIlos cn alguna de las UAMICRO.
I'ROGIIAMACION ORIENTADA
A
OBJETOS.,
\ ;I cluc en el codigo fllente de la UAMICRO se implementaron módulos conp 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 .
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:
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.
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
l~0~S~Y11L1.l~
D E
LA C!4hfICROAhora. 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.
- 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);
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}
VER 1)IKECTORIOS
EN
LA
UAMICROI ,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:
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:
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)
<
'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).
(;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
THENIF 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)
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 hexadecimal1
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
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);
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.
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
RI'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 <> ' ' THENcad 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 ;
Desensamblador (0,version); Desp - Mem (0,version);
I-ND:
I F
resultado = 27 then begincnd :
CcrrarVentana ; Cerrarventana
I : N D :
1
CargaY
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)
;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:
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
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
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
. \ 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
~ ' 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
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.
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
\)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
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,
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
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., 1993AGRADECIMIENTOS
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