0% encontró este documento útil (0 votos)
15 vistas12 páginas

Modelo de Programación de CPU

Este documento presenta un modelo de programación de CPU y describe los componentes clave de una CPU simulada, incluyendo instrucciones, registros, modos de direccionamiento, y cómo interactúan estos componentes. También describe las funciones del simulador de CPU, incluyendo vistas de memoria de instrucciones, registros especiales como el PC y SR, registros generales, y pila de programas. El objetivo es ayudar a los estudiantes a comprender los conceptos básicos de arquitectura de computadoras a través de la experimentación con el simulador
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas12 páginas

Modelo de Programación de CPU

Este documento presenta un modelo de programación de CPU y describe los componentes clave de una CPU simulada, incluyendo instrucciones, registros, modos de direccionamiento, y cómo interactúan estos componentes. También describe las funciones del simulador de CPU, incluyendo vistas de memoria de instrucciones, registros especiales como el PC y SR, registros generales, y pila de programas. El objetivo es ayudar a los estudiantes a comprender los conceptos básicos de arquitectura de computadoras a través de la experimentación con el simulador
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Traducido del inglés al español - [Link].

com

Modelo de programación de CPU 1


A. Introducción

Objetivos
Al final de esta práctica de laboratorio, usted debería ser capaz de:

▪ Use el simulador de CPU para crear instrucciones básicas de CPU


▪ Use el simulador para ejecutar instrucciones básicas de la CPU
▪ Use las instrucciones de la CPU para mover datos a registros, comparar valores en registros,
enviar datos a la pila, sacar datos de la pila, saltar a ubicaciones de direcciones y agregar
valores contenidos en registros.
▪ Explique la función de los registros especiales de la CPU PC (Contador de programa) y SR
(Registro de estado) y los indicadores de estado OV, N y Z.
▪ Produzca código para declaraciones condicionales simples y bucles.

B. Simuladores de procesador (CPU)

Los tutoriales de arquitectura de computadoras están respaldados por simuladores, que se


crean para ayudar a sustentar los conceptos teóricos que normalmente se cubren durante las
conferencias. Los simuladores brindan una representación visual y animada de los mecanismos
involucrados y permiten a los estudiantes observar el funcionamiento interno oculto de los
sistemas, lo que sería difícil o imposible de hacer de otra manera. La ventaja añadida de usar
simuladores es que permiten a los estudiantes experimentar y explorar diferentes aspectos
tecnológicos de los sistemas sin tener que instalar y configurar los sistemas reales.

C. Teoría básica

El modelo de programación de la arquitectura de la computadora define esos


componentes arquitectónicos de bajo nivel, que incluyen los siguientes

▪ conjunto de instrucciones de la CPU

▪ registros de la CPU

▪ Diferentes formas de direccionar datos en instrucciones (es decir, modos de direccionamiento)

También define las interacciones entre los componentes anteriores. Es este modelo de
programación de bajo nivel el que hace posibles los cálculos programados.

D. Detalles del simulador

Esta sección incluye información básica sobre el simulador que permite a los estudiantes utilizar el
simulador. El o los tutores estarán disponibles para ayudar en caso de dificultad en el uso del
simulador. La ventana principal se compone de varias vistas que representan diferentes partes
funcionales de la Unidad Central de Procesamiento simulada. Estos se muestran en la Imagen 1 a
continuación y se componen de

▪ Memoria de instrucciones de la CPU

▪ Registros especiales de la CPU

▪ Registros de CPU (propósito general)

1
▪ pila de programas
▪ Funciones de creación y ejecución de programas

instrucción de la CPU
vista de la memoria
CPU especial Vista de registros de la CPU

vista de registros
“Añadir programa
Vista de la pila de programas
pestaña "Instrucciones" Vista de lista de programas

Pestaña "Crear programa"


Imagen 1 – Ventana del Simulador de CPU

Las partes del simulador relevantes para esta práctica de laboratorio se describen a continuación.
Lea esta información detenidamente e intente identificar las diferentes partes en la ventana real
del Simulador de [Link] los siguientes ejercicios. Usa esta informaciónen conjunto
con los ejercicios que siguen.

2
1. Vista de la memoria de instrucciones de la CPU

Imagen 2 - Vista de la memoria de

instrucciones

Esta vista contiene las


instrucciones del programa. Las
instrucciones se muestran como
secuencias de bajo nivelinstrucción
mnemónicos (en formato de nivel de
ensamblador) y no como código binario.
Esto se hace para mayor claridad y hace
que el código sea más legible para los
humanos.

Cada instrucción está asociada


a dos direcciones: la dirección
física (PADañar) y la dirección
lógica (LAñadir). Esta vista
también muestra la dirección
base (Base) contra cada
instrucción. La secuencia de
instrucciones pertenecientes a
un mismo programa tendrá la
misma dirección base.

2. Vista de registros especiales de la CPU


Esta vista muestra el conjunto de registros de la CPU,
que tienen funciones especializadas predefinidas:
ordenador personal:Contador de programacontiene la
dirección de la siguiente instrucción a ejecutar.
infrarrojos:Registro de instruccionescontiene la
instrucción que se está ejecutando actualmente. RS:
Registro de estadocontiene información relativa al
resultado de la última instrucción ejecutada.

SP:Puntero de pilael registro apunta al valor


mantenido en la parte superior de la pila del programa
(ver más abajo).
BR:registro básicocontiene la dirección base
actual.
MAR:Registro de direcciones de memoriacontiene la
dirección de memoria a la que se accede actualmente.

Imagen 3 - Vista de registros

especiales de la CPU Bits de estado: OV: Desbordamiento;Z: Cero;norte:


Negativo

3
3. Vista de registros de la CPU

Imagen 4 – Vista de registros de la CPU

La vista del conjunto de registros muestra


el contenido de todos los registros de uso
general, que se utilizan para mantener
valores temporales a medida que se
ejecutan las instrucciones del programa.
Los registros son memorias muy rápidas
que contienen valores temporales mientras
la CPU ejecuta instrucciones.

Esta arquitectura soporta de 8 a 64 registros.


Estos registros se utilizan a menudo para
contener valores de las variables de un
programa tal como se definen en lenguajes
de alto nivel.

No todas las arquitecturas tienen tantos


registros. Algunos tienen más (por ejemplo,
128 registros) y otros tienen menos (por
ejemplo, 8 registros). En todos los casos,
estos registros tienen propósitos similares.

Esta vista muestra el nombre de cada registro (


registro), su valor actual (valle) y algunos
valores adicionales, que están reservados para
la depuración del programa. También se puede
usar para restablecer manualmente los valores
de registro individuales, lo que suele ser útil
para la depuración [Link] cambiar
manualmente el contenido de un registro,
primero seleccione el registro y luego ingrese el
nuevo valor en el cuadro de texto,Valor de
registro, y haga clic en elCAMBIARbotón en el
Registros pestaña.

4
4. Vista de la pila de programas

Imagen 5 - Vista de la pila de programas

La pila de programas es otra área que mantiene


valores temporales a medida que se ejecutan las
instrucciones. La pila es una estructura de datos
LIFO (último en entrar, primero en salir). También
se utiliza para el manejo eficiente de
interrupciones y llamadas de [Link]
programa tiene su propia pila individual.

Las instrucciones de la CPU PSH (push) y POP se utilizan


para almacenar valores en la parte superior de la pila y
extraer valores de la parte superior de la pila,
respectivamente.

5. Vista de lista de programas

Imagen 6 - Vista de lista de programas

Utilizar elQUITAR PROGRAMAbotón para


eliminar el programa seleccionado de la lista;
utilizar elELIMINAR TODOS LOS PROGRAMAS
botón para eliminar todos los programas de la
lista. Tenga en cuenta que cuando se elimina un
programa, sus instrucciones también se
eliminan delVista de memoria de
instrucciones.

6. Creación de programas

Imagen 7 – Pestaña Crear programa

Para crear un nuevo programa ingrese su


nombre en elNombre del programacaja y su
dirección base en elDirección basecuadro y
luego haga clic en elAGREGAR botón. El
nombre del nuevo programa aparecerá en la
vista Lista de programas (ver Imagen 6).

5
Imagen 8 – Agregar pestaña de

instrucciones del programa

UsarAÑADIR NUEVO…botón para agregar


una nueva instrucción; usarEDITAR… botón
para editar la instrucción seleccionada; usar
MOVER HACIA ABAJO/ ASCENDERbotones
para mover la instrucción seleccionada
hacia abajo o hacia arriba; usarINSERTAR
ARRIBA…/INSERTAR ABAJO…botones para
insertar una nueva instrucción encima o
debajo de la instrucción seleccionada
respectivamente.

E. Ejercicios de laboratorio: investigar y explorar

Los ejercicios de laboratorio son una serie de actividades, que son realizadas por los alumnos
bajo unas pautas bá[Link], ¿cómo se lleva a cabo este tutorial?Se espera que los
estudiantes sigan las instrucciones dadas para identificar y ubicar la información requerida,
actuar en consecuencia y tomar notas de sus observaciones. Para poder realizar estas
actividades deberá consultar la información enSección Danterior y también se refieren con
frecuencia a laApéndicepara obtener información sobre varias instrucciones de CPU, se le
pedirá que cree y [Link], debe leer atentamente y comprender las [Link]
intentas cada actividad.

EMPIEZA AQUI :Crear un programa y agregarle instrucciones

Ahora, comencemos. Primero debe colocar algunas instrucciones en elVista de memoria de


instrucciones(ver imagen 2),representando la memoria RAM en la máquina real, antes de ejecutar
cualquier instrucción. Para hacer esto, siga los pasos a continuación:

En elProgramapestaña (ver Imagen 7), primero ingrese unNombre del programay, a continuación,
introduzca unDirección base(puede ser cualquier número, pero para este ejercicio use 100). Clickea en el
AGREGAR botón. Se introducirá un nuevo nombre de programa en elLista de programasvista (ver Imagen 6).
Por cierto, puedes usar elAHORRAR…botón para guardar las instrucciones en un archivo. También puede
utilizar elCARGA…Botón para cargar instrucciones desde un archivo.

Ahora está listo para ingresar instrucciones en el Simulador de CPU. Esto se hace haciendo clic en el
AÑADIR NUEVO…botón en elInstruccionespestaña (ver Imagen 8). Esto mostrará laInstrucciones:
CPU0ventana. Utilice esta ventana para seleccionar e introducir las instrucciones de la CPU. Puede
encontrar más información al respecto en el sitio de este módulo. Apéndiceenumera las instrucciones
que necesitará en este ejercicio.

Ahora, prueba las siguientes actividades (ingrese sus respuestas en los cuadros de texto provistos ).
Una palabra de precaución: guarde regularmente su código en un archivo en caso de que el
simulador falle, en cuyo caso puede reiniciar el simulador y volver a cargar su archivo.

6
Parte A: (Consulte el apéndice para obtener ayuda con las instrucciones de la CPU)

1. Cree una instrucción, quese mueve número 5 para registrar R00.

2. Ejecute la instrucción anterior (Para ello, haga doble clic en la instrucción). Observa el
resultado en elRegistros de CPUvista (Imagen 4).

3. Cree una instrucción, quese mueve número 7 para registrar R01.

4. Ejecutarlo (Para ello, haga doble clic en la instrucción)


5. Observe el contenido de R00 y R01 en elRegistros de CPUvista (Imagen 4).

6. Cree una instrucción, queagrega el contenido de R00 y R01.

7. Ejecutarlo.

8. Anote en qué registro se pone el resultado.

9. Cree una instrucción, queempuja el valor en el registro anterior a la parte superior de la


pila del programa y luego ejecútelo. Observe el valor enPila de programas (Imagen 5).

10. Cree una instrucción paraempujar número 2 en la parte superior de la pila de programas y
ejecútelo. Observe el valor enPila de programas(Imagen 5).

11. Cree una instrucción parasaltar incondicionalmente a la primera instrucción.

12. Ejecutarlo.

7
13. Observe el valor en elordenador personalregistro. Esta es la dirección de la siguiente
instrucción a ejecutar. ¿Tomar nota de la instrucción a la que apunta?

14. Cree una instrucción paraestallido el valor en la parte superior de laPila de programasen el registro R02.

15. Ejecutarlo.

16. Cree una instrucción paraestallido el valor en la parte superior de laPila de programasen el registro R03.

17. Ejecutarlo.

18. Ejecute la última instrucción una vez más. ¿Qué pasó? Explicar.

19. Crea uncomparar instrucción, que compara valores en los registros R04 y R05.

20. Inserte manualmente dos valores iguales en los registros R04 y R05 (Imagen 4).

21. Ejecute la instrucción de comparación anterior.

22. ¿Cuál de las banderas de estadoOV/Z/Nestá configurado (es decir, la casilla está marcada)?

23. Inserte manualmente un valor en el primer registro mayor que el del segundo registro.

24. Vuelva a ejecutar la instrucción de comparación.

25. ¿Cuál de las banderas de estadoOV/Z/N¿Está establecido?

26. Inserte manualmente un valor en el primer registro más pequeño que el del segundo registro.

8
27. Ejecute la instrucción de comparación una vez más.

28. ¿Cuál de las banderas de estadoOV/Z/N¿Está establecido?

29. Cree una instrucción, quesaltar a la primera instrucción si los valores en los
registros R04 y R05 son iguales.

30. Pruebe la instrucción anterior poniendo manualmente valores iguales en los registros
R04 y R05, luego primero ejecute la instrucción de comparación y luego ejecute la
instrucción de salto (Recordar:Ejecutas una instrucción haciendo doble clic sobre ella.).
Si funcionó, la primera instrucción debe estar resaltada.

31. Ahora que tiene cierta comprensión de las instrucciones básicas de la CPU y puede programar el
simulador, aquí hay un pequeño desafío para usted: preparar un pequeño ciclo de programa. Los
bucles de programa son extremadamente útiles y los programas informáticos los utilizan con
mucha frecuencia. Esto es lo que tienes que hacer:

1. Cree una instrucción quemover s número 0 en el registro R01


2. Cree una instrucción queagregar s número 1 para registrar R01
3. Cree una instrucción quecomparar s número 10 y registro R01
4. Cree una instrucción quesaltar Vuelva a la instrucción 2 anterior si R01 esno es
igual al número 10.
5. Cree una instrucción HLT.

Tome nota de las instrucciones 1 a 5 que creó anteriormente en el cuadro a continuación:

6. Comenzando desde la instrucción 1, ejecute manualmente las instrucciones 1 a 4


una tras otra. ¿Qué sucedió cuando ejecutó la instrucción 4?

7. Ahora primero haga clic en elPROGRAMA DE RESTABLECIMIENTObotón (verControl de programa


pestaña en la Imagen 1) y luego resalte la instrucción 1 arriba. A continuación, haga clic en elCORRER
botón. Ahora observa el bucle en acción.

9
Parte B: (Consulte el apéndice para obtener ayuda con las instrucciones de la CPU)

1. Produzca el código para una declaración condicional tal que si el valor en el registro R02 esmas
grande que(>)el valor en el registro R01 y luego en el registro R03 se establece en 8. Pruébelo en
el simulador.

2. Producir el código para un ciclo que se repite5 vecesdonde el valor del registro R02 se
incrementa en 2 cada vez que se repite el ciclo. Pruébelo en el simulador.

3. Los números 4, -3, 5 y -6 sona mano empujado en la parte superior de la pila en ese orden.
Producir el código para una rutina queestallidosdos números de la parte superior de la pila
multiplicaellas yempujael resultado vuelve a la parte superior de la pila. La rutina repite esto
hasta que solo queda un número en la parte superior de la pila. Pruebe el código en el
simulador.

* * * Fin de los Ejercicios ***

10
Apéndice: subconjunto de instrucciones del simulador de CPU

Instrucción Descripción

Instrucciones de transferencia de datos

Mueva un número para registrarse; mover registro a registro

[Link]
MOVIMIENTO

MOV #2, R01mueve el número 2 al registro R01


MOV R01, R03mueve el contenido del registro R01 al registro R03

LDB Cargue un byte de la memoria para registrarse

LDW Cargue una palabra (2 bytes) de la memoria para registrarse

STB Almacenar un byte del registro a la memoria

STW Almacenar una palabra (2 bytes) del registro a la memoria

Empuje un número a la parte superior de la pila de programas (TOS); empujar registro a TOS

[Link]
PSH
PSH #6empuja el número 6 en la parte superior de la pila

PSH R03empuja el contenido del registro R03 en la parte superior de la pila

Extrae datos de la parte superior de la pila de programas para registrarlos

[Link]
ESTALLIDO
POP R05coloca el contenido de la parte superior de la pila en el registro R05

Nota: Si intenta hacer POP desde una pila vacía, obtendrá el mensaje
de error "Stack underflow".

Instrucciones aritméticas

Agregue un número para registrarse; añadir registro para registrarse

[Link]

AGREGAR
AGREGAR #3, R02suma el número 3 al contenido del registro R02 y almacena el
resultado en el registro R02.

AGREGAR R00, R01suma el contenido del registro R00 al contenido del registro
R01 y almacena el resultado en el registro R01.

SUB Reste el número del registro; restar registro de registro


mul Multiplicar número con registro; multiplicar registro con registro

DIV Dividir número con registro; dividir registro con registro

Instrucciones de transferencia de control

JMP Saltar a la dirección de instrucción dadaincondicionalmente

11
[Link]
JMP 100salta incondicionalmente a la ubicación de dirección de instrucción 100

JLT Saltar a la dirección de instrucción si es menor que (después de la última comparación)

JGT Saltar a la dirección de instrucción si es mayor que (después de la última comparación)

Saltar a la dirección de instrucción si es igual (después de la última instrucción de comparación), por

ejemplo

JEQ JEQ 200salta a la ubicación de dirección de instrucción 200 si el resultado de la


instrucción de comparación anterior indica que los dos números son iguales, es
decir, el indicador de estado Z está activado (en este caso, la casilla Z estará
marcada).

JNE Saltar a la dirección de instrucción si no es igual (después de la última comparación)

CALIFORNIA Saltar a la dirección de la subrutina

RETIRADO Regreso de subrutina


SWI Interrupción de software (utilizada para solicitar ayuda del sistema operativo)

HLT Detener simulación

Instrucción de comparación

Comparar un número con registro; comparar registro con registro

[Link]
CMP n.º 5, R02comparar el número 5 con el contenido del registro R02

PCM R01, R03compare el contenido de los registros R01 y R03


Nota:
CMP
Si R01 = R03, se establecerá el indicador de estado Z, es decir, se marcará la
casilla Z.

Si R01 < R03, no se establecerá ninguna de las banderas de estado, es decir, ninguna de las casillas de
bandera de estado estará marcada.

Si R01 > R03, se establecerá el indicador de estado N, es decir, se marcará la casilla de


estado N.

Instrucciones de entrada, salida

EN Obtenga datos de entrada (si están disponibles) de un dispositivo IO externo

AFUERA Salida de datos a un dispositivo IO externo

12

También podría gustarte