PDF de programación - manual de simula3ms

Imágen de pdf manual de simula3ms

manual de simula3msgráfica de visualizaciones

Publicado el 5 de Julio del 2017
1.489 visualizaciones desde el 5 de Julio del 2017
1,8 MB
37 paginas
Creado hace 16a (02/01/2008)
Apéndice A

Manual de usuario

En este manual se explica como utilizar Simula3MS . En la sección A.1

se enumeran los pasos básicos para usar la herramienta. A continuación se

describen de forma más detallada la edición de programas en lenguaje en-

samblador para este procesador, los distintos elementos del simulador: el seg-

mento de texto, el segmento de datos, los registros, etc. así como las distintas

conguraciones.

A.1. Guía rápida

A continuación se indican los pasos básicos para empezar a trabajar con

Simula3MS :

1. Una vez abierta la ventana de Simula3MS , existen dos opciones:

Cargar un chero que ha sido editado con anterioridad.

Editar un nuevo código en lenguaje ensamblador.

2. Una vez editado o cargado el chero, el siguiente paso es ensamblarlo,

para ello hay que pulsar el botón Ensamblar. A partir de aquí hay dos

posibles resultados:

1

A.1. Guía rápida

2

Si el código que queremos ejecutar no tiene errores sintácticos se

activará el botón Ejecutar que permite acceder a la ventana de la

simulación de la ejecución del código analizado.

En caso de que el código no sea correcto, en la parte inferior de la

ventana aparecerá un listado con todos los errores y el primero de

ellos aparecerá remarcado. Se puede acceder a los siguientes, en

caso de que los hubiera, por medio del botón Error siguiente. Una

vez corregidos estos fallos se vuelve a pulsar botón Ensamblar y

se repite este paso.

3. El paso siguiente, previo a ejecutar, será escoger la conguración del

simulador sobre la que queremos que se ejecute el código. Para ello, en

el menú Conguración tenemos tres posibles opciones: Entrada/Salida,

Camino de datos y Técnicas de salto. Por defecto la opción activada es

el camino de datos Monociclo con la Entrada/Salida deshabilitada.

Entrada/Salida. La Entrada/Salida aparece inicialmente desacti-

vada. En caso de querer realizar una simulación orientada al es-

tudio de los mecanismos de Entrada/Salida se puede elegir entre

Entrada/Salida con encuesta o Entrada/Salida con interrupciones.

Camino de datos. La opción seleccionada por defecto es el camino

de datos Monociclo. Al escoger Multiciclo o cualquiera de las im-

plementaciones del procesador Segmentado, se abrirá una nueva

ventana formulario que permite congurar la latencia de las ope-

raciones en punto otante.

Técnicas de salto. Actualmente hay implementadas en Simula3MS

dos técnicas de salto: Salto retardado y Salto jo. Ambas apare-

cen inicialmente desactivadas y la selección de cualquiera de estas

técnicas implica escoger el pipeline básico.

4. Una vez obtenido, el código correcto y congurado el simulador, se pulsa

Ejecutar y tenemos acceso a la ventana en la cual se simula la ejecución

A.2. Manual extendido

3

del código escogido. En esta ventana se puede observar la ejecución del

programa completo usando el botón ejecutar, de modo que se mostrarán

sólo los valores nales, o bien ciclo a ciclo, mediante los botones ciclos

siguiente y ciclo anterior, pudiendo ver así las modicaciones que cada

instrucción realiza en cada ciclo.

A.2. Manual extendido

A.2.1. Edición del código

El primer paso al iniciar Simula3MS es editar un código en lenguaje en-

samblador, para ello se puede cargar el código de un chero o bien editarlo. La
sintaxis básica utilizada por Simula3MS tiene las siguientes características:

Los comentarios empiezan por el símbolo #, todo lo que aparezca en

la misma línea a continuación de este símbolo es ignorado.

Los programas se dividen en dos partes:

ˆ .text: sección obligatoria en todos los programas, contiene el con-

junto de las instrucciones del programa.

ˆ .data: sección opcional, aunque normalmente necesaria. Es la sec-

ción de declaración de las variables del programa.

Características de .text

La sección .text es obligatoria en todos los programas, contiene el conjunto

de instrucciones del programa. Los elementos siguientes se guardan en el

segmento de texto.

Las primeras líneas de la sección .text, obligatorias ya que indican al

simulador donde debe empezar la ejecución del programa, son:

.globl main

.main:

A continuación se escribe el código del programa, siguiendo estas reglas:

A.2. Manual extendido

4

Figura A.1: Ventana del editor

A.2. Manual extendido

5

Las etiquetas van seguidas por dos puntos (:). Una etiqueta válida es

una secuencia de caracteres alfanuméricos, subrayados (_) y puntos (.).

En la línea de la etiqueta no puede haber una instrucción, las instruc-

ciones se situarán a partir de la línea siguiente a la etiqueta.

Las instrucciones válidas implementadas en este simulador se muestran

en tablas según su tipo. Las enteras tipo R en el cuadro A.1, las tipo I

en el A.2 y las tipo J en la tabla A.3. En cuanto a las de punto otante,

las de tipo R se muestran en los cuadros A.4, A.5 y A.6, mientras que

las de tipo I están en el cuadro A.7.

Los registros enteros pueden indicarse por su número de orden o por

su nombre, por ejemplo $t1=$9. Las equivalencias se muestran en el

cuadro A.9. En el caso de los registros de punto otante, también se

permiten ambas nomenclaturas pero la equivalencia se limita a suprimir

la f. Ejemplo: $f6=$6.

Por defecto los números se representan en base 10.

Se pueden incluir llamadas al sistema operativo (syscall ), para solicitar

algún servicio como impresión por pantalla, ver sección A.5.

Con el objetivo de ayudar al usuario a cargar variables, Simula3MS tie-

ne también implementadas las pseudoinstrucciones la y li. Por ejem-

plo:

la $1, variable

carga en el registro $1 la dirección de memoria donde está almacenada

la variable. La ejecución de está pseudoinstrucción se divide en dos

instrucciones:

lui $1, 0x1001 (representa los 16 bits de mayor peso de la dirección

de memoria)

ori $ra, 0x0004 (16 bits de menor peso de la dirección de memoria)

A.2. Manual extendido

6

sub

or

slt

Inst. Denición
add

and

Almacena en el registro $1 el valor de
la suma de los otros dos
Almacena en el $1 el valor de la resta
de $2 (minuendo), menos el $3 (sus-
traendo)
Almacena en el $1 el resultado de ha-
cer una operación AND entre los otros
dos registros
Almacena en el $1 el resultado de ha-
cer una operación OR entre los regis-
tros $2 y $3
Coloca un 1 en el registro $1 si el valor
almacenado en $2 es menor que el de
$3. Si no lo es se almacena un 0 en $1.
Modica la dirección del PC, por aquel
valor almacenado en el registro $1
Se almacena en el HI el resto y en LO
el cociente de dividir $1 (dividendo)
entre $2(divisor).
Se almacena en el registro LO los 32
bits de menor peso y en HI los 32 de
mayor peso de la multiplicar $1 y $2.
mfhi Copia el valor almacenado en el regis-

mult

jr

div

Formato
add $1, $2, $3

sub $1, $2, $3

and $1, $2, $3

or $1, $2, $3

slt $1, $2, $3

jr $1

div $1, $2.

mult $1, $2.

mfhi $1.

tro HI en $1

mo Copia el valor almacenado en LO en el

mo $1.

registro $1

mfc0 Transere el registro $2 del coprocesa-

mfc0 $1, $2

sll

srl

sra

dor 0 al registro $1 de la CPU.
Almacena en el registro $1 el valor del
registro $2 desplazado n bits a la iz-
quierda
Almacena en el registro $1 el valor del
registro $2 desplazado n bits a la de-
recha
Almacena en el registro $1 el valor del
registro $2 después de hacer un des-
plazamiento aritmético de n bits a la
derecha

sll $1, $2, n

srl $1, $2, n

sra $1, $2, n

Cuadro A.1: Instrucciones tipo R

A.2. Manual extendido

Inst. Denición

7

Formato

addi

Se almacena en el registro $1 la suma del registro $2

addi $1, $2, cons-

y el valor de la constante

tante

andi

El registro $1 tiene el resultado de una operación AND

andi $1, $2, cons-

entre $2 y la constante

tante

ori

El registro $1 tiene el resultado de una operación OR

ori $1, $2, constan-

entre $2 y la constante

te

slti

Almacena en $1 un 1 si el valor registro $2 es menor

slti $1, $2, constan-

que el de la constante. En caso contrario almacena un

te

0

lui

Carga la constante en los 16 bits más signicativos del

lui $1, constante

registro $1

lw

Carga en el registro $1 la palabra almacenada en la

lw $1, desplaza-

dirección de memoria que contiene el registro $2 más

miento($2)

el desplazamiento. La nueva dirección calculada debe

ser múltiplo de cuatro

lb

Carga en el registro $1 el byte de memoria apuntado

lb $1, desplaza-

por la dirección almacenada en el registro $2 más el

miento($2)

desplazamiento

sw

Almacena en memoria en la posición obtenida de su-

sw $1, desplaza-

marle el desplazamiento a la dirección del registro $2,

miento($2)

la palabra del registro $1. La dirección debe ser múl-

tiplo de 4.

sb

Almacena en la posición de memoria correspondiente

sb $1, desplaza-

al valor de $2 más el desplazamiento, el primer byte

miento($2).

de la palabra almacenada en $1.

beq

Si el valor de $1 y $2 es igual se modica el valor del

beq $1, $2, etique-

PC para pasar a ejecutar el trozo de código apuntado

ta.

por la etiqueta.

bne

Si el valor de $1 y $2 no es igual se modica el valor del

bne $1, $2, etique-

PC para pasar a ejecutar el trozo de código apuntado

ta.

por la etiqueta.

Cuadro A.2: Instrucciones tipo I

A.2. Manual extendido

8

Inst. Denición

Formato

j

Modica el valor del PC para ejecutar

j etiqueta

las instrucciones siguientes a la etique-

ta

jal

Modica el valor del PC por aquel al

jal etiqueta

que apunta la etiqueta y almacena la

dirección actual del PC en $ra

Cuadro A.3: Instrucciones tipo J

Características de .data

La sección .data contiene la declaración de las variables del programa.

Los elementos siguientes se guardan en el segmento de datos, en concreto en

la memoria. Esta sección es opcional.

La declaración de las variables del programa se ajusta a las siguientes

reglas:

En cada línea no puede haber más de una etiqueta.

La declaración de una variable sigue este formato:

ˆ En primer lugar debe ir un identicador de variable válido (eti-

queta). Se considera válida cualquier s
  • Links de descarga
http://lwp-l.com/pdf4907

Comentarios de: manual de simula3ms (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