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