ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Simuladores


Enviado por   •  19 de Septiembre de 2014  •  945 Palabras (4 Páginas)  •  440 Visitas

Página 1 de 4

Simuladores

1. Para cada uno de los casos siguientes, escribe un programa en lenguaje ensamblador de la máquina sencilla que realice la operación indicada, introduce el programa en la máquina sencilla y verifica que funciona correctamente.

Caso 1

Escribir un programa que intercambie los contenidos de dos posiciones de memoria (por ejemplo, que intercambie el contenido de la 101 con el de la 102).

Caso 2

Escribir un programa que realice la siguiente operación:

If ( a = = b)

c= a+1;

else

c= b+1;

Supones que en la posición 101 hay un 1, que a está en la 102, que b está en la 103 y que el resultado c debe quedar en la 104.

Caso 3

Escribir un programa que realice la siguiente operación:

i = 0;

while ( i < a)

i = i + 1;

La sentencia while hace que se ejecute la instrucción i=i+1 mientras se cumple la condición, es decir, mientras i sea menor que a.

Asumir que en la posición 101 hay un 0, que en la 102 hay un 1, que a está en la 103 y que el resultado i debe quedar en la posición 104.

2. Supón los contenidos de memoria indicados abajo. Rellena la tabla indicando el contenido de los registros en los ciclos indicados. Después introduce el programa en la màquina sencilla y verifica si tus estimaciones han sido correctas.

0: ADD 103, 105

1: MOV 105, 104

2: CMP 104, 102

3: BEQ 6

4: CMP 101, 101

5: BEQ 0

6:

101: 32

102: 1500

103: 18

104: 9

105: 21

Ciclo ¿Qué valor contiene cada uno de estos elementos en el ciclo indicado?

PC IR A B

10

20

30

40

50

3. El factorial de un número, en la máquina sencilla

El factorial de un número a es el resultado de la siguiente operación:

Factorial de n = 1*2*3*…*(a-1)*a

Un algoritmo para calcular el factorial de un número a es el siguiente:

Programa factorial

Variables a, contador, factorial: entero;

a = 10;

contador = 1;

factorial = 1;

While (contador < a)

{

contador = contador +1;

factorial = factorial * contador;

}

La sentencia While hace que se repitan las sentencias que hay entre las llaves mientras se cumpla la condición de que contador < a.

A continuación tenéis un código incompleto en lenguaje máquina de la máquina sencilla. El código calcula el factorial, pero le faltan las instrucciones para realizar el cálculo

factorial=factorial*contador

El código es:

0: MOV 102, 104 ;contador = 1;

1: MOV 102, 105 ;factorial = 1;

2: CMP 104, 103 ;Mientras contador < a

3: BEQ 7+n ;Saltar a final

4: ADD 102, 104 ;contador = contador +1;

5: . . . . . . . . ;factorial = factorial * contador

;supongamos que ocupa n posiciones

5+n: CMP 101, 101

6+n: BEQ 2 ;Saltar a Mientras

7+n: . . . . . ;final

. . . . . . . . . . .

101: 0

102: 1

103: valor de a = 10

104: valor de contador

105: valor de factorial

Realiza ahora las tareas siguientes:

1. Completa el código en lenguaje máquina con las instrucciones necesarias para calcular factorial = factorial * contador. Para ello puedes aprovechar el código que hemos visto en clase para multiplicar dos números. El código se reproduce más abajo (aunque seguramente tendrás que retocarlo un poco para integrarlo en el código anterior).

...

Descargar como (para miembros actualizados) txt (6 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com