PDF de programación - (SSOO) introducción al simulador

<<>>
Imágen de pdf (SSOO) introducción al simulador

(SSOO) introducción al simuladorgráfica de visualizaciones

Publicado el 30 de Diciembre del 2019
372 visualizaciones desde el 30 de Diciembre del 2019
575,7 KB
18 paginas
Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Introducción al simulador

Departamento de Automática

Sistemas Operativos

Introducción al simulador

1 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Índice

● Introducción al simulador
● Mapa de memoria



Proyecciones de dispositivos de entrada/salida

● Procesador

● Registros


Instrucciones
● Ciclo de ejecución
● Ejercicios propuestos

Sistemas Operativos

Introducción al simulador

2 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Arquitectura del simulador

Descripción general

Sitio web

https://parraman.github.io/asm-simulator/

Proyecto github (código fuente)

https://github.com/parraman/asm-simulator



Simulador de una arquitectura de 16 bits





Angular 2+ (Typescript)

Bootstrap 3

CodeMirror

Sistemas Operativos

Introducción al simulador

3 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Arquitectura del simulador

Descripción general

Editor de código

Visor de eventos

Dispositivos E/S

CPU (Registros)

Mapa de memoria

Mapa de E/S

Sistemas Operativos

Introducción al simulador

4 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Arquitectura del simulador

Arquitectura del simulador

Controlador de
Interrupciones

RAM

Display
Visual

Temporizador

(timer)

Teclado
numérico

Procesador

Bus de direcciones

Bus de entrada/salida

Display
Textual

Sistemas Operativos

Introducción al simulador

5 / 17

Descripción básica de los componentes básicos del sistema simulado:

Procesador

-
- Memoria: espacio de direcciones de 16 bits. Solo se usan los primeros 1024

bytes
Controlador de interrupciones: centraliza las distintas fuentes de
interrupción. Se explica en la siguiente práctica
Timer: permite programar interrupciones (alarma). Se explica en la siguiente
práctica
Dispositivos de E/S: display visual, display textual y teclado numérico

-

-

-

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Proyecciones de dispositivos de E/S

Mapa de memoria
Descripción general

● Mapa de memoria de 1024

bytes

● Permite la edición manual de

celdas:

(Ctrl + click)

ó

(Cmd + click)

● Los valores de

las celdas

tienen formato hexadecimal

Sistemas Operativos

Introducción al simulador

6 / 17

Ejemplos: edición manual de una o varias celdas

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Proyecciones de dispositivos de E/S

Mapa de memoria
Proyecciones de dispositivos de E/S

El mapa de memoria está dividido en tres
zonas:

Mapa de memoria

0x0000







de

RAM: memoria

Zona
de
lectura/escritura donde almacenar datos
y código

Zona del display textual: cada celda se
corresponde con una letra. El valor será el
carácter ASCII a mostrar

Zona del display visual: cada celda se
corresponde con un píxel. El valor será el
color del píxel

0x02EF
0x02F0
0x0300

0x03FF

RAM

Display textual

Display visual

Sistemas Operativos

Introducción al simulador

7 / 17

Ejemplos: edición manual de una o varias celdas de las proyecciones del display
textual y del display visual

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Procesador (CPU)
Descripción general

Procesador

Bus de direcciones

Control Unit

Bus de entrada/salida

ALU

El procesador consta de:

● Unidad de control (Control Unit): se encarga de obtener de

memoria, interpretar y ejecutar las instrucciones

● Unidad Aritmético-Lógica (ALU): realiza funciones aritméticas y

lógicas a nivel de bit

Sistemas Operativos

Introducción al simulador

8 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Procesador (CPU)
Registros

El procesador incluye tres tipos de registros:

● Registros de propósito general
● Registros de direcciones
● Registro de Estado (Status Register)

Sistemas Operativos

Introducción al simulador

9 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Procesador (CPU)
Registros de propósito general

A

C

16 bits

16 bits

AH

CH

AL

8 bits

CL

8 bits

B

D

16 bits

16 bits

BH

DH

BL

8 bits

DL

8 bits

El procesador incluye cuatro registros de propósito general:




Tienen un tamaño de 16 bits
Pueden ser accedidos en modo palabra o modo byte

Sistemas Operativos

Introducción al simulador

10 / 17

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Procesador (CPU)
Registros de direcciones

Instruction
Pointer

IP

16 bits

Stack
Pointer

SP

SSP

16 bits

USP

16 bits

El procesador mantiene dos punteros de pila:




Pila de modo supervisor (SSP)
Pila de modo usuario (USP)

Sistemas Operativos

Introducción al simulador

11 / 17

La selección de pila se hace de forma automática. Si la CPU está en modo
supervisor, el registro SP es el SSP. Si está en modo usuario, el registro es el USP.
Todas las instrucciones que direccionan el registro de pila de forma explícita, siempre
se refieren al SP genérico. Ese SP es, por tanto, como un “alias” del verdadero
registro puntero de pila.

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Procesador (CPU)
Registro de estado

Status
Register

S

1

0

0

0

0

0

0

0

0

0

0

0

0

M C

Z

0

HF

0

0

El registro de estado define los siguientes flags:

16 bits


S: Supervisor Mode
● M: Interrupt Mask
● C: Carry flag

Z: Zero flag

F: Fault mode
● H: Halt mode

Sistemas Operativos

Introducción al simulador

12 / 17

-

-

-

-

-

-

Supervisor Mode Flag. Activado si la CPU está en modo supervisor y
desactivado si está en modo usuario. La CPU arranca en modo supervisor.
Los modos de operación se explican más en detalle prácticas posteriores.
Interrupt Mask Flag. Activado si la CPU permite interrupciones y desactivado
si las interrupciones están deshabilitadas. Se explica más en detalle en
prácticas posteriores.
Carry Flag. Se activa si la última operación aritmético-lógica ha producido
acarreo. Por ejemplo, si la suma de dos enteros produce un desbordamiento
o si la resta de dos enteros produce un número negativo.
Zero flag. Se activa si la última operación aritmético-lógica ha dado un
resultado de cero. Si el resultado último fue distinto de cero, el bit estará
desactivado.
Fault mode flag. Activado si la CPU se encuentra en modo fallo (error
irrecuperable que requiere un reinicio).
Halt mode flag. Activado si la CPU se encuentra en modo bloqueo. En este
modo, la CPU sigue activada pero deja de ejecutar instrucciones hasta que se
produce una interrupción. Se explica más en detalle en prácticas posteriores.

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Juego de instrucciones
Formato de instrucción

opcode
(obligatorio)

operando 1

(si presente)

operando 2

(si presente)

8 bits

8 o 16 bits

8 o 16 bits

● Una instrucción está formada por:

○ Un código de operación (opcode) de 8 bits
○ Niguno, uno o dos operandos de 8 o 16 bits

● El código de operación determina el tipo de instrucción a

ejecutar y los operandos que puedan necesitarse

● Cada instrucción está identificada por un mnemónico (e.g.

MOV, ADD, etc)

Sistemas Operativos

Introducción al simulador

13 / 17

Un mismo mnemónico (e.g. MOV) se puede utilizar para identificar una o varias
instrucciones dependiendo de los distintos tipos de operandos. En ese caso el
procesador define un opcode distinto para cada uno de los distintos conjuntos de
operandos.

Introducción al simulador
Mapa de memoria
Procesador
Ciclo de ejecución
Ejercicios propuestos

Descripción general
Registros
Juego de instrucciones

Juego de instrucciones
Tipos de operandos

Nombre

Descripción

Tamaño

BYTE

WORD

Valor inmediato de 8 bits

Valor inmediato de 16 bits

ADDRESS

Dirección de 16 bits

REGISTER_8BITS

Registro de 8 bits

REGISTER_16BITS

Registro de 16 bits

1 byte

2 bytes

2 bytes

1 byte

1 byte

REGADDRESS

Direccionamiento por registro + offset

2 bytes

Sistemas Operativos

Introducción al simulador

14 / 17

REGISTER_16BITS: este operando codifica el número de referencia o índice de uno
de los registros de 16 bits que implementa la CPU. Los índices de cada registro son
los siguientes:

A - Registro de propósito general A:
B - Registro de propósito general B:
C - Registro de propósito general C:
D - Registro de propósito general D:
SP - Registro puntero de pila:

0 (0x00)
1 (0x01)
2 (0x02)
3 (0x03)
4 (0x04)

REGISTER_8BITS: este operando codifica el número de referencia o índice de uno
de los registros de 8 bits que implementa la CPU. Los índices de cada registro son
los siguientes:

AH - MSB del Registro A: 9 (0x09)
AL - LSB del Registro A:
10 (0x0A)
BH - MSB del Registro B: 11 (0x0B)
BL - LSB del Registro B:
12 (0x0C)
CH - MSB del Registro C:
13 (0x0D)
CL - LSB del Registro C:
14 (0x0E)
DH - MSB del Registro D:
15 (0x0F)
DL - LSB del Registro D:
16 (0x10)

REGADDRESS: este operando codifica con 1 byte el número de referencia de un

registro de 16 bits y, con el otro byte, el offset a añadir al valor del parámetro para
formar la dirección efectiva. El offset se codifica empleando complemente a dos
[-128, 127].

Introd
  • Links de descarga
http://lwp-l.com/pdf17097

Comentarios de: (SSOO) introducción al simulador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad