universidad autonoma metropolitana unidad iztapalapa

Anuncio
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 ELECTRONICAyII1
NOMBRE DEL PROYECTO:
SIMULADORES DE MICROPROCESADORES
ASESOR:
Dr. Adriano de Luca P.
dl
&+,I
/
1
c. L.4
L-
i/
(f tz
3
ALUMNO:
Román Rodriguez Cortez
MATRICULA
85328961
MAYO DE 1995
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
~/licropl.occsadoresllamado UAMICRO, con el cuál se pretende que
un simulador de
los alumnos obtengan una
m a y o r compresion sobre los microprocesadoresy 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.
Incorporar un Shellquepermitasalirtemporalmentealsistemaoperativo
sin tenerque
:~bandonarla 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 de salvar los programas de las UAMICROS, almacenar las condiciones iniciales de los
registros d e l a IJAMICRO.
INTRODUCCION
.\ctualmentc.el
granavanceen
herramienta seaprácticamenteperfecta
la arquitecturadecomputadoras
y tanversatilque
ha logradoqueesta
en lavidadiariano
es extraíio
u1contr;lrnos con una computadorarealizandoalgunatarea.Debidoalagrandemandade
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 comoINTEL, 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 sobrelas cuales se está construyendo una forma de vidamuy
apegacla a las computadoras.
OI3.JETIVOS:
I : n cl presente proyecto, se plantean los siguientes objetivos:
a )
Iinriquecer y actualizar las opciones del simulador del microprocesadorUAMICRO relizado en
l a unidad Iztapalapa,elcualfuecreadoconelfindeapoyar
a laenseñanzadel
con~portan?iento de
microprocesadores.
I>) M o s ~ r a rel 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 alumnosdelamateriadeSistemasDigitales
l'uniliarizarse con el desarrollo de programas en lenguje ensamblador.
3
Opciones agregadas al simulador dela UAMICRO.
:\ continuación se detalla el funcionamiento de
las opciones que se agregaron al simulador
I :,AMIC’ROcon el tin de facilitar su uso,
I:n l a p ; ~ n ~ a l lde
a 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.- REl
I O cualpermite
ver el directorioen
uso, listando los archivosconsus
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 a
l opcion de preguntar si se desea salvar el archivo cuandose va a terminar de usarel
simulador o cuando se cambia deUAMICRO al detectar cambios en los registroso la memoria.
I : I simulador cuenta con el agregado de una extension automatica con el fin de poder clasificar
I
los archivos hechos en alguna delas UAMICRO.
4
I amhidn
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.
5
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~~'os~-~~~llaei6n.
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 posiciony un tamaño, por lo que
ilucstros objetos deben tener sus datos especificos así como una rutina queinicialice esos datos.
- Por otro
1111
lado. las figuras geométricas tienen características bien definidas tales como un color.
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
rutina
~ L KIus
dihje.
6
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, seleccioneel
ckhtilo
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
su especilican las rutinasdeclaradasen
el objeto.Porejemplo
COMO
elprocedimientoInicializar
potlemos dcfinirlo de la siguiente manera:
7
hotcst: qut: estamos haciendo mencion de las variables declaradas
en el objeto, asi como a los
parrimetros delinidos en el procedimiento.
.\hora. 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 ose declaran procedimientos y funciones dentro de un objeto, dichas funciones y
I”nct:ciimientos son llamados metodos.
8
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 manipular
a
los datos del ob.jeto.
HERENCIA.
i
clc las propiedades de la programacion orientada a objetos es
se dcri\x dc
l a herencia. Cuando
un objeto
otro ob.jeto se le heredan todas las propiedades de los campos del objeto viejo.
l’or c.jen1plo sitenemos
un objeto objl y un objetoobj2seconstruyeusandoobj
1.
cntonccs ob.12 tiene todas las propiedades de obj1 mas las que se definan para obj2:
oI>-j2posee l o s campos x,y,z,Inicializa y Pinta mientras que obj1 solo posee x,y,Inicializa
IMPLEMENTACION DE LAPROGRAMACIONORIENTADAAOBJETOSEN
LA
Il.4MIC’RO
9
l~0~S~Y11L1.l~
D E LA C!4hfICRO
Ahora. regresando a
tlclinimos
u11
la ilnplementacion de los módulos incorporados a
objetollamadoAplicacion,elcualseencargadedejarresidente
! i,~IMIC'RO
!
cargarelCOMMAND.COMpararealizaralgunaoperacion
las UAMICRO.
al simulador
enelsistema
! >icho modulo fue declarado de la siguiente manera:
.I'\'PE
:\plicacion
= ob.ject(TApplication)
procedure Shell;
end:
c 'c~mose 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.
IO
-
12otones. barras de desplazamiento, cuadros de entrada, cuadros de entrada, cuadros de
verificación y botones de radio.
-
'l'ratamiento estandar de pulsacionesy 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 llamadaa 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);
Su illlplctlletltacion en Turbo Vision se muestra a continuacion:
Volviendo a la implementación
del
DosShell
en la UAMICRO. tenemos clue el
~ ~ r o c c d i ~ n i e Shell
n t o definido en el objetofLlé programado de la siguiente manera:
J' la llamadaalobjetoeshecha
en un procedimientoquehacellamadasalosobjetos
hcrcdados del objeto Tapplication de la manera siguiente:
l~I<OC'li)lUREDosShell;
13E(;lN
IicstorcCrtMode;
(reestablece el modotexto)
p;lrlsa.I nit:
ctc
{inicializa los subsistemas
de
Turbo
Vision
tales
como
memoria,
video,
;
pLLlsa.Sllcll:
{llama al procedimientoquepermitesaliralsistemaoperativo}
pausa.l)one:
{destruyeelambientedel
shell1 una vez queregresa }
Sct(;raphMode( GetGraphMode); (regresa al modo grafico de la UAMICRO}
IINII:
VER 1)IKECTORIOS
EN LA UAMICRO
I ,a implementación de l a opcion para ver el directorio de trabajo fue hecha dela siguiente
m~rncra:
)'a
clue en TurboPascalexisten
las opcionesparacambiar
al modotexto
y al modo
yralico. sc hizo uso de éstas rutinasel desplegado del directorio.
I : I modulo para encontrar los archivos presentes en un directorioasí como las rutinas para
ordenar y desplegar el Directorio se muestrana continuación.
procedture 1,'indFiles;
1 encuentra los archivos del directorio actual}
\
;Ir
I:: ScarchRec;
bc: i I1
C ' s u n t := o ;
I.'inclFirst(Path, ReadOuly + Directory + Archive, F);
while (DosError = O ) and (Count < MaxDirSize) do
hcgin
C;etMem( Dir[Count], Length(F.Name) + 1O);
Move(F.Attr, Dir[Count]", Length(F.Name) + 1 O):
I nc( C:ollnt)r
I:inclNest(F):
cntl:
cnd:
13
tunction NumStr(N, D: Integer): String;
hegin
NumStr[O] := Chr(D);
\\hile 11 > O do
begin
N~~rnStr[Dl
:= Chr(N mod 10 + Ord('0'));
N := N div I O ;
I k c ( I)):
cnd:
cntl:
WriteLn('Directorio de Path):
i1'C'ount = O then
begin
WriteL>n('Nohay archivos');
e I1 d
I,
else
beg iI1
Total := O:
t o r 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:
Write(N. '
I:
9
- Length(N), E, ' ' 1 4 - Length(E));
i f W ideDir then
begin
if Attr and Directory <> O then
\;rite(' D I R )
elsc
Write((Size + 1023) shr 10: 3, 'k');
if 1 and 3 <> 3 then
Write(' ': 3)
else
WriteLn:
end
clse
begin
if Attr and Directory <> O then
Write('<DIR> ' )
else
Write(Size: 8):
lj,lpackTime(Time, T);
WriteLn(T.Day: 4,
MonthStr[T.Month],
NumStr(T.Year mod 100, 21,
T.Hour: 4.
NumStr(T.Min, 2));
I-'.
I-'.
I:'.
end:
Inc(Tota1. Size);
cnd;
i f WideDir and (Count and 3 <> O) then WriteLn:
WriteLn(Count, ' Archivos. '. Total, bytes,
Disltl'ree(Ord(Path[ 11)-64), ' bytes libres');
end:
I~eaclln:
cncl: printtiles)
I,
I6
< 'on10
orcimu-5
J.
vemos en elprocedimientoprincipal(Director),elprocedimientoencontrará,
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 listay todos
los archivos. aunque se pueden enviar como parámetros la forma de desplegado (ya sea en listao
c11horimntal)
>'
el tipo de archivos (ya sea por nombre o extensión).
17
(;IiAIII)AII AKCHIVOS
I .;I opcicin de guardar los archivos que se generan enla UAMICRO fué modificadaya que
:Illtcriormcnte no tomaba en cuenta el que se modificara un archivo
y el simulador considerara
pcrlincntc cl preguntar si se desean guardarlos cambios antes desalir.
I ,;t opcion de guardar quedó estructurada de la siguiente manera en el codigo fuente de la
I~.'lMI(*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;
archsal : TEXT;
si existe : BOOLEAN;
BEC~IN
al-ch-car :=
AbrirVentana(9) ;
settextstyle( SMALLFONT,HOR .IZ,DIR,4 ) ;
setlillstyle( 1 ,gris-oscuro ) ;
sctcolor(b1anco) ;
outtextxy(270.0.'<RET> "NONAME"');
REPEAT
resultado := Lee alnum ( 1O,O,12,'>',arch_car);
IF resultado <> 27 THEN
I3EGIN
IF archcar = THEN
arch-car := 'NONAME':
{ archivo de "default"
case version of
I : arch-car:=arch -car+'.OO 1';
2: archcar:=arch car+'.002':
3: archcar:=arch -car+'.OO3';
end;
IF Existe (arch-car) THEN
BEGIN
si existe := TRUE;
AirirVentana( 1O ) ;
outtextxy( 1 O,O,arch-car+' ya existe borrar '? (S/N)');
REPEAT
tecla := ReadKey :
tecla := UpCase (tecla)
'I:
IS
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,'
Hexa (mem[i],paso);
Writeln (arch-sa1,paso)
END;
Close (arcll-sal);
(;uardaReg(version,archcar);
END ;
Cerrarventana ;
END: Guarda-en-disco ]
I):
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 la uamicro x en disco en formato hexadecimal1
v ,4I-?
la.l-b,rar.rir,rpc,rout,rl~ar,rin,rindx,rb~,rrio,rsf,rsp:cadena;
I3EGIN
('ASE VERSION OF
1 : BliGIN
Idexa(reg[A],ra);
WriteLn(filereg,ra);
Hexa(reg[B],rb);
WriteLn(filereg,rb);
Hcxa(reg[AR],rar):
WriteLn(filereg,rar):
19
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);
M/ riteLn( filereg. rir);
tIcxa(reg[PC],rpc);
WriteLn(filereg, rpc);
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 <> ) THEN
path := path + caracter;
'"I
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 :N11:
se observa, elprocedimientoutiliza
el mismonombre del archivoque
simulador cambiando solamente la extensión del archivo por RG1, RG2
segun l a vcrsion de IJAMICRO que esté trabajando.
('orno
u s a n d o e11 cl
se esta
o RG3
21
deesperarseque
si seimplementanlasrutinasparaguardarlosarchivosconuna
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:
1:s
PROCEDIIRE Carga (version: INTEGER);
I'rocedimiento para cargar un programaen la memoria
v nR
archivo : TEXT;
dir.
resultado : INTEGER;
caddir.
cad-cod : cad-car;
caracter : CHAR;
I{IC;IN
.\brirVentana(8) ;
scttextst\:le( SMALLFONT,HORIZDIR,4 ) ;
setfillstyle( 1,gris-oscuro 1 ;
setcolor( blanco);
arch car :=
outtcxtxq;(270.O,'<RET> "NONAME"');
resultado := Nomb-arch(Version); {Pide el nombredel archivo y lo asigna a arc11-car}
IF resultado <> 27 THEN
I3EGIN
a p := o:
Assign (archivo,arch-car);
Reset (archivo);
ItEPEAT
cad clir := ":
~
'I:
REPEAT
Rcad (archiv0,caracter);
I F caracter <> ' ' THEN
cad-dir := cad-dir + caracter;
[INTI L caracter =
dir := Decimal (cad-dir); {convierte la cadena a decimal, esta
es la direccion de
mcmoria~
I<eadln (archivo,cad cod);
mcmldir AND $OlFF] := Decimal (cad-cod); (escribe el codigo en memoria}
ITNTII, EOF (archivo);
C.LOSE (archivo):
C'arglicgistros(arch_car,Version); {carga los valores de los registros si existe e ]
archivo 1
ap := o ;
C'crrarVentana :
C'crrarVentana ;
I;
22
Desensamblador (0,version);
Desp-Mem (0,version);
I-ND:
I F resultado = 27 then begin
CcrrarVentana ; Cerrarventana
cnd :
I:ND: 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)
I:ND: ;As~gKeg)
;carga los valores con los que se guardaron los registros)
I'R0CEI)URE CargRegistros(arch-car:cad-car; versi0n:INTEGER);
VAR
arch-reg: CADENA;
Apareg:'TEXT;
caracter:CHAR;
i.conte: I NTEGER;
I,inc : cad-car:
I3rX;IN
¡:=I:
arch reg:=";
obt&emos el nombre del archivo de datos)
REPEAT
caracter:=arch-car[i];
I I caracter <> THEN
arch-reg := arch-reg + caracter;
i:=i+ I ;
1J N T I L caracter = l . ' ;
case version of
1 : arch-reg:=arch-reg+'.RGl'; {agregamos la extension del archivo)
2: arch-reg:=archreg+'.RG2';
3 : arch-reg:=arch-reg+'.RG3';
e11d:
I 1 E,xiste(arch-reg) THEN
I.'
begin
Assign (Apareg,arch-reg);
Rcset (Apareg);
I F NOT EOF(Apareg) THEN
AsigReg(Apareg,Line.conte,Version);
close(Apareg);
end:
I'NII:
24
E.IEMI'LOS DE PROGRAMAS PARA LAS UAMICROS
I,os
programas queaquísemuestrantienenelobjetivodeenriquecer
la cantidadde
el libro Sistenzus Digitalesl pero solamente se harán uso de unas
cuanlas insIrucciones de cada una de las UAMICROS.
~ : j c n ~ p l oclue
s sc mencionan en
l ; . l l ~ ~ M l ~ l 1, O
SIMIII~2,AI)OR:
UAMICRO 1
~ \ I < ~ ' IIVO:
I
REGRES.OO1
I )l~~SC'RIPClON:
cuenta regresiva de2 en 2 desde 20h hasta OOh
' I k I.IIC;I
Iknnaccllia Adriano; SIsfen~us
Digitdes Libros de Texto UAM Iztapalapa; 1993
25
STA FI:
I I1.T
I ,os registros de la lJAMICRO 1 tienen incialmente valores iguala cero
I m w w 3
SIMIJIA:\DOR:[JAMICRO 1
ARCHIVO: CONTADOR.001
I)l?SCRITTION: Este programa despliegauna cuenta ascendente desdeO0 hasta OF
26
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
O1
o3 O
O30
20
30
. \ continuación se presenta la operacion del simulador de microprocesador en la sección
clue 1.~16modificada.
SI M IJL>.ZDORDE
LOS MICROPROCESADORES “UAMICRO”
( ’ o n esta opción se pueden cargar en la memoria de la UAMICRO programas que se
e11cuentrcne n disco asi como salvarlos.
;\I activar la opción Archivos aparece una ventana en la UAMICRO con
opciones:
las siguientes
Pantalla de la UAMICRO con lasnuevas opciones
J’odcmos activar una de las opciones desplazandose conlas flechas arriba y abajo.
28
I
’
~ ' l I i < G A R . - A l selecionarlaopcioncargar,apareceotraventanapidiendoelnombredel
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 muestrala activacion de l a opción Cargar
29
Si el archivoexistepara
la versiondela
UAMICRO queseestaactivando,entonces
ap~u"'ceran las instruccionesquecorrespondenalprogramaen
la memoriadelsimulador,asi
como los valores con los que se guardaronlos 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.Sipresiona
la letra "S", elarchivoseráreemplazadopero
presionada es "N", entonces el simulador pedirá otro nombre para el archivo.
A l activar la opción Salvar, se pide un nombre sin extensión
si latecla
I ~ I R E C ' I ~ O R I 0Ai
. - activar esta opción, el simulador nos despliega
los archivos que se encuentran
cn cl Directorioactual
ocupado as¡
detrabajoindicandoelnumerodearchivos
y lacantidaddeespacio
como la cantidad libre, ademas de desplegar las caracteristicas de cada uno como son
I;I I'echa. hora y tamallo.
l<.jeelnplodel desplegado del Directorioal utilizar esta opcion del simulador
31
\)OSSI1ELL.- Esta opción permite salir temporalmente al sistema operativo, dejando residente al
simulador.
Pararegresaralsimuladorunicamentesetecleadesdeelpromptdelsistemala
palabra "EXIT".
Pantalla de trabajo que deja el simulador al momento de activar el dosshell
32
En lo personal, me parecióquelacolaboraciónparamejorarelsoftware
simulador I'LK
una mcta
del
un buen avance tanto para los futuros usuarios asi como también para cumplir con
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
tenga un
no implica que se
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 simuladorUAMICRO fué realizado en
I"4SCAL (posiblemente version 5), las modificaciones que se le incorporaron fueron hechas en la
\.crsion 7 la cualincorporaprogramaciónorientadaaobjetos,
y permitedarlealsistema
un
potencial de crecimiento mayor ya que pueden ser incorporados sin ningun problema el uso del
rattin
algun otro periferico.
( 'omo
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,sepuedenutilizarlenguajesdeprogramaciónmasactualesque
pcrmitirin tener una interface con el usuario mucho mas amigable
y útil ya que el límite para
l.c, 1'.~ ~ a rcs
l ala creatividad del programador,
33
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
un compilador mas actual al que originalmente se utiliz6
l¿)rmas sobre c0mo realizarlos utilizando
para 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~asenel
lenguajeensambladordelaUAMICRO,con
el findequelosalumnosque
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
t
13IBLIOGRAFIA
.loyancs Aguilar Luis. Turbo Pascal 6.0 a su alcance; Ed. Mc GrawHill, Madrid España, 1993
I k Luca I’ennacchia Adriano, Sistemas Digitales, UAM-IZTAPALAPA, México D.F., 1993
35
AGRADECIMIENTOS
A mis padres por brindarme siempre su cariñoy comprensión
A mis hermanos porque son excelentes ylos quiero mucho.
, \ mis Primas Laura. Lorena, Claudia, Edith y Diana porque son las mejores primas que pudiera
tcncr.
4 mis amigos: Eduardo,Fernando,Juan,Aldoporque
a pesar dequenosencontremoslejos
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.
36
Descargar