Está en la página 1de 7

Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09

Universidad de Castilla La Mancha I.T.Industrial. Electricidad

PRÁCTICA 2-3
Arquitectura Von Neumann. Principios básicos de
funcionamiento de un Computador
Material: PC
Software simulador de un Computador Von Neumann

Duración: 2 horas

DESARROLLO DE LA PRÁCTICA

La siguiente figura muestra el esquema de un computador Von Neumann.

1
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

JUEGO DE INSTRUCCIONES MÁQUINA

Instrucciones tamaño palabra (todas de 16 bits)


CPU con 8 registros de propósito general de 16 bits cada uno
Tamaño palabra CPU = 16bits
Bus de datos de 16 bits
Tamaño palabra de memoria = 16bits
Bus de direcciones de 16 bits

Nomenclatura utilizada

Rd Tres bits que codifican el registro destino de una operación.


Rs Tres bits que codifican el registro fuente (origen) de una operación.
Ri Tres bits que codifican el registro índice para direccionamiento indirecto.
Rd/s Tres bits que codifican un registro que es a la vez fuente y destino de una operación.
Rx: Tres bits que codifican el registro que contiene la dirección de destino para saltos indirectos.

000 R0
001 R1
010 R2
.. --
110 R6
111 R7

Instrucciones de movimiento o transferencia de datos

Código de Instr. Descripción Mnemónico Operación

00 000 00000000000 Instrucción nula NOP


00 001 Rd Rs 00000 Transferencia entre registros MOV Rd, Rs Rd ß Rs
00 010 Rd Ri 00000 Leer de memoria MOV Rd, [Ri] Rd ß M(Ri)
00 011 Ri Rs 00000 Escribir en memoria MOV [Ri], Rs M(Ri) ß Rs
00 100 Rd Inm_8 Inicializa parte baja registro MOVL Rd, Inm_8 RdL ßInm8 bits
00 101 Rd Inm_8 Inicializa parte alta registro MOVH Rd, Inm_8 RdHßInm8 bits
00 110 Rs 00000000 Apila el contenido del registro Rs. PUSH Rs
00 111 Rd 00000000 Desapila un valor en el registro Rd. POP Rd

Instrucciones Aritmético-Lógicas

De tres operandos

01 000 Rd Rs1 Rs2 00 ADD Rd, Rs1, Rs2 Rd ßRs1 + Rs2


01 001 Rd Rs1 Rs2 00 SUB Rd, Rs1, Rs2 Rd ßRs1 - Rs2
01 010 Rd Rs1 Rs2 00 OR Rd, Rs1, Rs2 RdßRs1 OR Rs2
01 011 Rd Rs1 Rs2 00 AND Rd, Rs1, Rs2 RdßRs1 AND Rs2
01 100 Rd Rs1 Rs2 00 XOR Rd, Rs1, Rs2 RdßRs1 XOR Rs2

De dos operandos

01 101 Rs1 Rs2 000 00 COMP Rs1, Rs2 Rs1 - Rs2

2
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

De un operando

100 00 Rd/s 00000000 NOT Rd/s


100 01 Rd/s 00000000 INC Rd/s Rd/s = Rd/s + 1
100 10 Rd/s 00000000 DEC Rd/s d/s = Rd/s - 1
100 11 Rd/s 00000000 NEG Rd/s Compl.a 2 de Rd/s

Interrupciones

Código instrucción Descripción Mnemónico Operación

101 00 00000000000 Pone a cero el flag de máscara de interrupción CLI IF = 0


101 01 00000000000 Pone a uno el flag de máscara de interrupción. STI IF = 1
101 10 000 Inm_8 Genera la interrupción software con vector de
interrupción Inm_8. INT Inm_8 Apila SR, PC ; PC = Inm_8
101 11 00000000000 Retorno de interrupción (bien sea hard . o softw). IRET Desapila PC y SR

Instrucciones de control de flujo

Saltos incondicionales

Código de Instr. Descripción Mnemónico Operación

11 00 0 000 Inm_8 Realiza un salto relativo JMP Inm_8 PC = PC + Ex_16(Inm_8)


11 00 1 Rx 00000000 Realiza un salto indirecto absoluto
a la posición de memoria contenida
en el registro Rx. JMP Rx PC = Rx

Saltos condicionales

Código instrucción Descripción Mnemónico Operación

11 11 0 Cond Inm_8 BR_Cond Inm_8 Si cond. cierta: PC = PC + Ex_16(Inm_8)

cond : 000 CF = 1
001 CF = 0
010 OF = 1
011 OF = 0
100 ZF = 1
101 ZF = 0
110 SF = 1
111 SF = 0

Llamadas y retornos a procedimientos

Código instrucción Descripción Mnemónico Operación

11 01 0 000 Inm_8 Salto relativo a un procedimiento. CALL Inm_8 Apila PC


PC=PC+Ex_16(Inm_8)
11 011 Rx 00000000 Salto indirecto absoluto a un procedimiento. CALL Rx Apila PC
PC = RX
11 10 0 00000000000 Retorno de procedimiento RET Desapila PC

3
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

REFERENCIA DE TECLAS

<F7> Ejecutar ciclo de reloj a ciclo de reloj dentro de una instrucción máquina
<F8>(normal) Ejecutar instrucción máquina completa

DESARROLLO DE LA PRÁCTICA:

1.- Instrucciones Máquina. Codificación y Decodificación

A) Trabajo a realizar sobre papel

1.1.- ¿Cuál es el código expresado en binario y hexadecimal de las siguientes instrucciones de


transferencia de datos?
binario hex

MOVL R1, 0AH ; R1L ß 0A H ___________ ______


MOVH R1, FF H ; R1H ß FF H ___________ ______

1.2.- ¿Cuál es el código expresado en binario y hexadecimal de la siguiente instrucción aritmética?

binario hex

ADD R3,R1,R2 ; R3 ß R1+R2 _____________ ______

1.3.- Se sabe que el siguiente nº hexadecimal 1C60H representa la codificación de una instrucción
máquina .

a) Pasarla a binario ____________________________________

b) ¿Qué instrucción es? ______________________

c) ¿Cuántos operandos tiene? _______________________

B) Trabajo a realizar sobre el simulador

1.4.- Verificar con el simulador los resultados del apartado anterior.

4
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

2.- Ejecución de Instrucciones Máquina. Registros Específicos y Generales

A) Trabajo a realizar sobre papel

2.1.- Traducir a lenguaje máquina de la MS (hexadecimal) el siguiente programa (Observar que


algunas ya las hemos hecho en el apartado anterior):

hex
MOVL R1, 0A H ; R1L ß 0A ______
MOVH R1, FF H ; R1H ß FF ______
ADD R3,R1,R2 ; R3 ß R1+R2 ______
MOV [R4], R3 ; M(R4) ß R3 ______

2.2.- ¿Qué hacen las instrucciones anteriores?

¿Se modifica algún registro?. En caso afirmativo di cual o cuales.

¿Se modifica el contenido de alguna posición de memoria? En caso afirmativo di cual o cuales

B) Trabajo a realizar sobre el simulador

2.3.- Introducir en memoria principal a partir de la dirección 0300H el programa anterior

2.4.- Inicializar el registro R2 con 1 y R4 con el valor 0110H

2.5.- Ejecutar (con F8) una a una las 4 instrucciones del programa y rellenar el siguiente cuadro:

estado inicial después de I1 después de I2 después de I3 después de I4

PC …………… …………… …………….. …………….. …………..


MDR …………… …………… …………….. …………….. …………..
MAR …………… …………… …………….. …………….. …………..
IR …………… …………… …………….. …………….. …………..
R1 …………… …………… …………….. …………….. …………..
R2 …………… …………… …………….. …………….. …………..
R3 …………… …………… …………….. …………….. …………..
R4 …………… …………… …………….. …………….. …………..

5
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

2.6.- Al ejecutar el programa anterior se modifica el contenido de una posición de memoria:

- dirección _____________
- nuevo contenido ____________

3.-Ejecución de Instrucciones Máquina: Ciclos de Reloj, Microoperaciones y Señales de Control

3.1.- Para la instrucción máquina MOVL R1, 0A H (1ª inst. del apartado 2.1) escribir a mano la
secuencia de microoperaciones y la activación de las señales de control que tienen lugar durante
todo el ciclo de instrucción. Hay que fijarse bien en la estructura de la ruta de datos:

Ciclos microoperaciones señales de control


de reloj

T1 MAR ß PC, TMPSß PC+1, READ PC_IB, IB_MAR, TMPE_CLR, CARRY_IN,


ADD, ALU_TMPS, READ
T2 PC ß TMPS, esperar a memoria TMPS_IB, IB_PC
T3 IR ßMDR MDR_IB, IB_IR

T4 _____________________ ____________________________

¿Cuántos ciclos de reloj tarda en ejecutarse? ______________

3.2.- Verificar el ejercicio anterior con el simulador (con F7)

3.3- Repetir lo mismo para la instrucción 3 (ADD R3,R1,R2). Verificarlo con el simulador
(Opción F7)

Ciclos microoperaciones señales de control


de reloj

T1 MAR ß PC, TMPSß PC+1, READ PC_IB, IB_MAR, TMPE_CLR, CARRY_IN,


ADD, ALU_TMPS, READ
T2 PC ß TMPS, esperar a memoria TMPS_IB, IB_PC
T3 IR ßMDR MDR_IB, IB_IR

T4 _____________________ ____________________________

T5 _____________________ ____________________________

_____________________ ____________________________

_____________________ ____________________________

¿Cuántos ciclos de reloj tarda en ejecutarse? ______________

6
Departamento de Sistemas Informáticos (Campus de Albacete) Fundamentos de Informática 2008-09
Universidad de Castilla La Mancha I.T.Industrial. Electricidad

3.4.-La siguiente secuencia de señales de control corresponden a una instrucción máquina

Paso 1 PC_IB, IB_MAR, TMPE_CLR, CARRY_IN, ADD, ALU_TMPS, READ


Paso 2 TMPS_IB, IB_PC
Paso 3 MDR_IB, IB_IR
Paso 4 R7_IB, TMPE_CLR, CARRY_IN, ADD, ALU_SR, ALU_TMPS
Paso 5 TMPS_IB, IB_R7, FIN

Identifica la instrucción de que se trata y completa la tabla siguiente. Verifícalo con el simulador.

Código de la instrucción Descripción Mnemónico

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

3.5.-Si el reloj de esta CPU tiene una frecuencia de 2 Gigaherzios

¿Cuánto tiempo tarda en ejecutarse la instrucción anterior?