Вы находитесь на странице: 1из 64

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERA CIENCIAS FISICAS Y MATEMATICAS

WLADIMIR CHIPUXI TRUJILLO

ARQUITECTURA DE LOS ORDENADORES

NIVEL: TERCERO

PARALELO: 2

ALU (UNIDAD ARITMTICA LGICA) 4 BITS

C3 C2
UNIDAD
0
0
UNIDAD LGICA
0
1
UNIDAD DE ARITMTICA
1
0 UNIDAD DE CORRIMIENTO
1
1
--------------------UNIDAD LGICA

Unidad que realiza operaciones lgicas entre dos datos de entrada A y B estas
operaciones las mencionamos en la siguiente tabla:
C1 C0 OPERACIONES
0
0
A or B
0
1
A or ex B
1
0
A and B

1
1
UNIDAD ARITMTICA

Unidad que realiza operaciones aritmticas entre dos datos de entrada A y B estas
operaciones las mencionamos en la siguiente tabla:
C1 C0 OPERACIN
0
0
A+1
0
1
A-1
1
0
A+B
1
1
A-B

UNIDAD DE CORRIMIENTO:

Unidad que realiza operaciones de desplazamiento sus datos de salida depende de sus
datos de entrada.
C0 OPERACIN
C1
0
0
1
1

0
1
0
1

RESET
A

EJERCICIO:
Utilizando la ALU A= 0101 y se aplica la siguiente secuencia:
C = 1001
C = 1010
Cul es el valor de la salida F?
F = 0010

DEFINICIN DE COMPUTADOR
Es una maquina capaz de procesa o tratar automticamente a gran velocidad clculos y
complicados procesos que requieren una toma rpido de decisiones, mediante la aplicacin
sistemtica de los criterios preestablecidos, siguiendo las instrucciones de un programa, la
informacin que se le suministra, es procesado para as obtener un resultado deseado.
Tambin es un dispositivo mecnico - electrnico que procesa informacin (numrico,
alfanumrico).
CLASIFICACIN DE UN COMPUTADOR

POR SU CLASE:
Computadoras Analgicas.- Son aquellas en las cuales sus procesos se desarrollan a travs de
procesos fsicos o qumicos.
Computadoras Digitales.- Son aquellas que trabajan con dgitos o sea que hacen sus procesos
con datos discretos.
Computadoras Hibridas.- Estas mquinas renen las caractersticas de las computadoras
analgicas y digitales.
POR SU PROPSITO:
Computadoras de propsito general.- Son utilizadas para almacenar diferentes programas y
pueden ser usados en incompatibles aplicaciones
Computadoras de propsito especfico.- Diseadas para realizar una sola tarea especfica ya
que los programas estn permanentemente almacenados en la mquina. Son las que se utiliza
para realizar una sola tarea.
POR SU FORMA DE OPERAR:

COMPUTADORAS MONOUSUARIO: Son aquellas que solamente pueden atender a una sola
persona a la vez.
Microcomputadoras.- Se difundieron masivamente en las empresas especialmente para
realizar las tareas de automatizacin de oficinas.
COMPUTADORAS MULTIUSUARIO: Son aquellas que pueden atender a ms de un usuario a la
vez, porque tienen ms de un procesador.
Minicomputadoras.- Es un sistema multiproceso capaz de soportar de 10 hasta 200 usuarios
simultneamente.
Macrocomputadoras.- Son grandes, rpidas y caros. Sistemas capaces de controlar cientos de
usuarios simultneamente as como cientos de dispositivos de entrada y salida.
Supercomputadoras.- Es el tipo de computadoras ms potente y ms rpida que existe en un
momento dado. Estas mquinas estn diseadas para procesar enormes cantidades de
informacin en poco tiempo y son dedicadas a una tarea especfica.

ARITMTICA DE COMPUTADORES
SISTEMAS DE NUMERACIN
DECIMAL
BASE = 10
DGITOS = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
EJEMPLO = 69,3 = 6*101 + 9*100 + 3*10-1
BINARIO
BASE = 2
DGITOS = 0, 1
EJEMPLO = 10,11 = 1*21 + 0*20 + 1*2-1 + 1*2-2
DECIMAL
BASE = 16
DGITOS = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
EJEMPLO = 4A,C = 4*161 + 10*160 + 12*10-1
TRANSFORMAR DE CUALQUIER BASE A DECIMAL
Multiplicamos los dgitos por su peso en sistema de numeracin correspondiente
TRANSFORMAR DE DECIMAL A CUALQUIER BASE
Se divide el nmero decimal para la base
EJEMPLOS
100 DECIMAL A BINARIO
100 2
0 50 2
0 25
1

2
12
0

2
6
0

2
3
1

100D = 1100100B

2
1

400 DECIMAL A HEXADECIMAL


400 16
0 25 16
9
1
1

16
0

400D = 190H

BASE 4 (GRUPOS DE 2)
BINARIO

BASE 8 (GRUPOS DE 3)
BASE 16 (GRUPOS DE 4)

EJEMPLOS:
6
4
110 0110

1100100B = 64H

COMPLEMENTOS
COMPLEMENTO a1
1001 = 0110
9
6
N = (2n N) 1
6 = (24 9) 1
6 = (16 9) 1
COMPLEMENTO a2
1001 = 0111
9
7
N* = (2n N)
7 = (24 9)
7 = (16 9)
EJERCICIO
HALLAR EL COMPLEMENTO A 16 DE 4A5H
0100 1010 0101
1011 0101 1010
+
1
1011 0101 1011

4A5H
B5AH
B5BH
FORMATO DE DATOS EN COMPUTADORAS

Letras, nmeros, smbolos e instrucciones


CDIGO ASCII
-

ESTNDAR.- 7 bits = 128 smbolos


EXTENDIDO.- 8 bits = 256 smbolos

UNICODE
-

16 bits ASCII Estandar


Caracteres especiales de todos los conjuntos de caracteres del mundo. (0100_FFFF)

EJEMPLO:
NOMBRE: CENTRAL QUITO
A = 41H
B = 42H
C = 43H
a = 61H
b = 62H
c = 63H
0 = 30H
1 = 31H
2 = 32H

8 BITS

DATOS BCD (Decimal codificado en binario)


153D = 0001 0101 0011BCD
153D = 99H = 1001 1001..Binario
BCD EMPAQUETADOS
-

Dos dgitos decimales = 8 bits


Un digito en 4 bits

BCD DESEMPAQUETADOS
-

Un digito decimal = 8 bits

BCD DESEMPAQUETADOS
DATOS EN BYTE
-

Numero sin signo. 0 - 255


Numero con signo -180 a 0 , 0 a +127

DATOS EN WORD (16 bits)


DATOS EN WORD (32 bits)

BCD EMPAQUETADOS

TRANSFORMACIN DE PARTE FRACCIONARIA DE DECIMAL A CUALQUIER BASE


0.125D = 0.001B
PROCEDIMIENTO
1. Multiplicar la fraccin decimal por la base numrica
2. Guarde todo el resultado como un digito la parte entera (aun si es cero) se escribe
inmediatamente a la derecha del punto.
3. Repita pasos 1. y 2. hasta que la parte fraccionaria del paso 2. sea cero.
EJEMPLOS:
0.125D

0.001B

0.125 x 2 = 0.250
0.250 x 2 = 0.50
0.50 x 2 = 1.0
EJERCICIO:
Sea 0.33 transformar a binario utilizando para la parte fraccionaria 8 bits y hallar el error por
truncamiento
0.33 x 2 = 0.66
0.66 x 2 = 1.32
0.32 x 2 = 0.64
0.64 x 2 = 1.28
0.28 x 2 = 0.56
0.56 x 2 = 1.12
0.12 x 2 = 0.24
0.24 x 2 = 0.48

0.01010100 = 2-2 + 2-4 + 2-6 = 0.328125


ERROR DE TRUNCAMIENTO
0.33
- 0.328125
0.001875 = 1.875x10-3

Formato para almacenamiento de DATOS en un computador


ASCII
BCD
ENTEROS
- SIN SIGNO
- CON SIGNO
- Byte. 8 bits
- Word. 16 bits
- Dword. 32 bits
- QW
REALES (Punto Flotante)
128 En representacin de enteros de 8 bits sin signo

1 0 0 0 0 0 0 0 80H
-128... En representacin de enteros de 8 bits con signo
1 0 0 0 0 0 0
0 1 1 1 1 1 1
+
1 0 0 0 0 0 0

0 80H
1
1
0 80H

127 En representacin de enteros de 8 bits sin signo 7FH


0 1 1 1 1 1 1 1 7FH
-128... En representacin de enteros de 8 bits con signo 81H
0 1 1 1 1 1 1
1 0 0 0 0 0 0
+
1 0 0 0 0 0 0

DATO 1
DATO 2
DATO 3
DATO 4
DATO 5
DATO 6
DATO 7
DATO 8

DB 200D
DB
54H
DB -127D
DB
127D
DW 2544D
DW 87ACH
DW -13400 D
DW 10 D

1 7FH
0
1
1 81H

1100
1010
1000
1010
0000
1111
0111
1000
0101
1100

1011
1000
0111
1100
1001
0000
1111
0001
1010
1000
8 BITS

CB
A8
87
AC
09
F0
7F
81
5A
C8

DATO 7
DATO 6
DATO 5
DATO 4
DATO 3
DATO 2
DATO 1

NMEROS EN PUNTO FLOTANTE


Se denomina as a las representaciones internas al procesador que moderan a los nmeros
reales.
0.023 = 2.3 x 10-2
Se dice que el nmero esta normalizado cuando al expresar en notacin cientfica el digito a la
izquierda no es cero.
En binario:
0.01101B = 1.101x 2-2 B
NORMA IEEE 754

Expresa el nmero de punto flotante de 32 bits normalizado de la siguiente forma


(-1)S x 1.M2 x 2Ee
SIGNO EXPONENTE MANTISA NORMALIZADA
1 bit
8 bits
23 bits

S = 0 nmeros positivos
S = 1 nmeros negativos

Ee = Representacin externa del exponente -127 Ee +127


Ei = Representacin interna del exponente
Ei = Ee+127
EJEMPLO
Convertir -0.75D a punto flotante (IEEE 754)
0.75 x 2 = 1.5
0.5 x 2 = 1.0
Ee = -1
Ei = -1+127 = 126
Ei = 01111110

-0.75D = -0.11B = -1.1 x 2-1


1
01111110 10000000000000000000000
SIGNO EXPONENTE
MANTISA

1011 1111
0100 0000
0000 0000
0000 0000
MEMORIA

BF
40
00
00

EJERCICIOS:
Convertir a representacin externa el siguiente nmero en punto flotante simple precisin
0
01101000 10101010100001101000010
SIGNO EXPONENTE
MANTISA
S = 0 positivo
Ei = 104
Ei = Ee +127
Ee = Ei -127
Ee = 104 127 = -23
M2 = 2-1 + 2--3 + 2-5 + 2-7 + 2-9 + 2-14 + 2-15 + 2-17 + 2-22
M2 = 0.661150455
Numero = 1.661150455 x 2-23 = 1.986164 x 10-7

Convertir 100D a punto flotante simple precisin


1. Convertir a binario
100 2
0 50 2
0 25
1

2
12
0

2
6
0

2
3
1

2
1

2. Normalizar
100D = 1100100 = 1.100100 x 26
3. Convertir Ee a Ei
Ee = 6
Ei = 6 + 127 = 133
Ei = 10000101
4. Ordenar segn los campos
0
100 0010 1 100 1000 0000 0000 0000 0000
SIGNO EXPONENTE
MANTISA
5. Convertir a Hexadecimal
42C80000
TIPOS DE INSTRUCCIONES EN LOS MICROPROCESADORES
-

Transferencia de datos. Ejemplo: IN, OUT, MUV, PUSH, POP


Aritmticas. Ejemplo: ADD, SUB, MUL, DIV, DEC, CMP
Manipulacin de bits. Ejemplos: AND, OR, De corrimiento ROL, ROR
Instrucciones para cadenas. Ejemplos: CMPS, MOVS, INS, OUTS
Transferencias de programas. Ejemplos: JS, JB, JA, JNZ
Control de procesador. Ejemplos: WAIT, NOP, CLI, HLT

MULTIPLICACIN DE ENTEROS SIN SIGNO


A = a1 a0

a1 a0
b1 bo
a1b0
a0b0
a1b1
a0b1
a1b1+C a1b0+a0b1 a0b0
*

B = b1 bo

Multiplicando dos nmeros de n bits la respuesta puede tener como mximo 2n bits
1001 9
* 101 5
1101
0000
1001
101101 45
El multiplicador ms sencillo opera sobre dos nmeros sin signo, produciendo cada vez un bit,
como se ilustra en la Figura 1. Los nmeros que se van a multiplicar son an~lan-2...ya ob n-ibn2...b~y, s e colocan en los registros A y B, respectivamente. El registro P est inicialmente a
cero. Hay dos partes en cada paso de la multiplicacin.
1. Si el bit menos significativo de A es 1, entonces el registro B, que contiene b,-lb,,-z...bo,
se suma a P; en cualquier otro caso 00 ... 00 se suma a P. La suma se vuelve a colocar
en P.
2. Los registros P y A se desplazan a la derecha, el bit de orden inferior de P se desplaza al
registro A y el bit ms a la derecha de A, que no se utiliza en el resto del algoritmo, se
desplaza fuera. Despus de n pasos, el producto aparece en los registros P y A,
conteniendo A los bits menos significativos.

EJEMPLOS:
A = 5 = 0101
B = 2 = 0010
P
A
0000 0101 Si es 1 sumo, si es 0 recorro a la derecha
+0010
P+B
0010 0101 Resultado
0001 0010 Corro uno a la derecha
0000

1001 Corro uno a la derecha

0000 1001 Si es 1 sumo


+0010
P+B
0010 1001 Resultado
0001 0100 Corro uno a la derecha
0000

1010 Corro uno a la derecha (Resultado de multiplicacin)

DIVISIN DE ENTEROS SIN SIGNO


El divisor ms sencillo tambin opera sobre nmeros sin signo y produce cada vez un bit. Un
divisor hardware se muestra en la Figura 2. Para calcular a/b, se pone a en el registro A, b en el
registro B, O en el registro P, y despus se procede como sigue:
1. Desplazar el par de registros (P,A) un bit a la izquierda.
2. Restar el contenido del registro B (que es b, -,b,-z...bo) del registro P.
3. Si el resultado del paso 2 es negativo, poner el bit de orden inferior de A a O, en
cualquier otro caso a 1.
4. Si el resultado del paso 2 es negativo, restaurar el valor antiguo de P sumando el
contenido del registro B de nuevo a P.

EJEMPLOS:

A = 13 = 1101
B = 3 = 0011
P
0000

A
1001

0001 101
-0011
-0010 1010
0001 1010

Desplazo hacia la izquierda


Restamos al valor de P el valor de B
Si el resultado es negativo el ultimo bit ser 0 caso contrario 1
Restauramos el ultimo valor de P

0011 010 Desplazo hacia la izquierda


-0011
P-B
0000 0101 Resultado no negativo ultimo bit = 1
0000

101

Desplazo hacia la izquierda

-0011
P-B
-0011 1010 Resultado negativo ultimo bit = 0
0000 1010 Restauramos el ultimo valor de P
0001 010
-0011
-0010 0100
0001 0100

Desplazo hacia la izquierda


P-B
Resultado negativo ultimo bit = 0
Restauramos el ultimo valor de P

ARQUITECTURA DE UNA COMPUTADORA


Es el diseo conceptual y la estructura operacional fundamental de un sistema de
computadora. Es decir, es un modelo y una descripcin funcional de los requerimientos y las
implementaciones de diseo para varias partes de una computadora, con especial inters en la
forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las
direcciones de memoria.
ORGANIZACIN DE UNA COMPUTADORA
Es la forma de seleccionar e interconectar componentes de hardware para crear
computadoras segn los requerimientos de funcionalidad, rendimiento y costo.
EJEMPLO:
-

Una cuestin de arquitectura es si la computadora tendr la instruccin de multiplicar.


Una cuestin de organizacin es si esa instruccin ser implementada por una unidad
especializada en multiplicar o por un mecanismo que haga un uso iterativo de la
unidad de suma del sistema.

La computadora es una entidad que interacta de alguna manera con su entorno externo. En
general, todas sus conexiones con el exterior pueden ser clasificadas como dispositivos
perifricos o lneas de comunicacin.
Hay cuatro componentes estructurales principales
Unidad Central de Procesamiento (CPU): Controla el funcionamiento de la computadora y
lleva a cabo las funciones de procesamiento de datos. Frecuentemente se le llama procesador.
El componente ms interesante y de algn modo el ms complejo es la CPU, sus principales
componentes estructurales son:
- Unidad de Control: Controla el funcionamiento de la CPU y por tanto de la
computadora.
- Unidad Aritmtica y Lgica (ALU): Lleva a cabo las funciones de procesamiento de
datos.
- Registros: Es el rea de almacenamiento interno temporal de datos para la CPU.
- Interconexin interna de la CPU: Son mecanismos que proporcionan comunicacin
entre la unidad de control, ALU y registros.
Memoria Principal: Almacena datos.

E/S: transfiere datos entre la computadora y el exterior.


Sistema de Interconexin (Bus del sistema): Es un mecanismo que proporciona la
comunicacin entre la CPU, la memoria y E/S.
TIPOS DE ARQUITECTURA
- CLSICAS
- Von Neumann
- Harvard
- SEGMENTADAS
- Arquitectura Pipeline
- MULTIPROCESAMIENTO
ARQUITECTURA DE COMPUTADORAS CLSICAS
El modelo clsico de arquitectura de computadoras fue diseado por Jhon Von Neumann que
consta de los siguientes elementos:
-

Dispositivos de entrada,
Dispositivos de proceso,
Dispositivos de almacenamiento
Dispositivos de salida

Estas arquitecturas se desarrollaron en las primeras computadoras electromecnicas y de


tubos de vaco. Aun son usadas en procesadores empotrados de gama baja y son la base de la
mayora de las Arquitecturas modernas.
Una caracterstica importante de este modelo es que tanto los datos como los programas, se
almacenan en la memoria antes de ser utilizados.

Fue utilizada en la computadora ENIAC (Electronic Numerical Integrator And Computer)


Fue la primera computadora electrnica de uso general en el mundo
ARQUITECTURA DE VON NEUMANN

Los datos y las instrucciones se almacenan en una sola memoria de lectura - escritura.
Los contenidos de esta memoria se direccionan indicando su posicin, sin considerar el
tipo de dato contenido en la misma.
La ejecucin se produce siguiendo una secuencia de instruccin tras instruccin (a no
ser que dicha instruccin se modifique explcitamente).

Registro Temporal de Memoria Buffer (MBR): Contiene una palabra que debe ser
almacenada en memoria, o recibe una palabra procedente de la memoria.
Registro Temporal de Instruccin (IBR): Almacena temporalmente la instruccin contenida en
la parte derecha de una palabra.
Registro de Instruccin (IR): Contiene el cdigo de operacin de la instruccin que se va a
ejecutar

Registro de Direccin de Memoria (MAR): Especifica la direccin de memoria de la palabra


que va a ser escrita o leda en MBR.
Contador de Programa (PC): Contiene la direccin de la siguiente pareja de instrucciones que
se traern de memoria.
Acumulador (AC) Multiplicador Cociente (MQ): Se emplean para almacenar temporalmente
operandos y resultados de operaciones de la ALU.
ARQUITECTURA DE VON NEUMANN
VENTAJAS
1. Hardware es simple
(nica memoria, menos circuitera)

DESVENTAJAS
1.Bus principal es compartido (datos cdigo,
entrada salida)
2. El tamao de los datos (nmero de bits) est
limitado al tamao de las instrucciones (nmero de
bits) porque ocupan la misma memoria
3. Cuello de botella. Limitacin en la velocidad de
operacin

ARQUITECTURA DE HARVARD

Se pueden almacenar las instrucciones en doce bits en la memoria de programa,


mientras los datos de almacenan en 8 bits en una memoria aparte.
El hecho de tener un bus separado para el programa y otro para los datos permite que
se lea el cdigo de operacin de una instruccin, al mismo tiempo se lee de la
memoria de datos los operados de la instruccin previa.
En la actualidad la mayora de los procesadores modernos se conectan al exterior de
manera similar a la arquitectura Von Neumann, con un banco de memoria masivo
nico, pero internamente incluyen varios niveles de memoria cache con bancos
separados en cache de programa y cache de datos, buscando un mejor desempeo sin
perder la versatilidad.

ARQUITECTURA DE HARVARD

VENTAJAS
1.Busses dedicados para datos e instrucciones
2. El tamao de los datos (nmero de bits) no est
limitado al tamao de las instrucciones (nmero de bits)
porque ocupan la misma memoria
3. Se elimina el cuello de botella de Von Neumann

DESVENTAJAS
1. Hardware es complejo
(mayor circuitera)
2. Mayores Costos

ARQUITECTURA DE COMPUTADORAS SEGMENTADAS

Las arquitecturas segmentadas o con segmentacin del cauce buscan mejorar el desempeo
realizando paralelamente varias etapas del ciclo de instruccin al mismo tiempo.
El procesador se divide en varias unidades funcionales independientes y se dividen entre ellas
el procesamiento de las instrucciones.
En un procesador con segmentacin del cause, cada una de estas etapas se asigna a una
unidad funcional diferente, la bsqueda a la unidad de bsqueda y la ejecucin a la unidad de
ejecucin.
Estas unidades pueden trabajar en forma paralela en instrucciones diferentes.
Estas unidades se comunican por medio de una cola de instrucciones en la que la unidad de
bsqueda coloca los cdigos de instruccin que ley para que la unidad de ejecucin los tome
de la cola y los ejecute.
ARQUITECTURA DE COMPUTADORAS MULTIPROCESAMIENTO

SMP es el acrnimo de Symmetric Multi-Processing, multiproceso simtrico. Se trata de un


tipo de arquitectura de ordenadores en que dos o ms procesadores comparten una nica
memoria central.
La arquitectura SMP (Multi-procesamiento simtrico, tambin llamada UMA, de Uniform
Memory Access), se caracteriza por el hecho de que varios microprocesadores comparten el
acceso a la memoria y perifricos de I/O, Normalmente conectados por un bus comn.
Se conocen como simtricos, ya que ningn procesador toma el papel de maestro y los dems
de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y
perifricos y ambos son administrados por el sistema operativo, es decir, compiten en igualdad
de condiciones por dicho acceso, de ah la denominacin simtrico.
Una computadora SMP se compone de microprocesadores independientes que se comunican
con la memoria a travs de un bus compartido.
Dicho bus es un recurso de uso comn. Por tanto, debe ser arbitrado para que solamente un
microprocesador lo use en cada instante de tiempo.
Las CPU de multiprocesamiento se clasifican de la siguiente manera:
SISO (Single Instruction, Single Operand ) computadoras independientes
SIMO (Single Instruction, Multiple Operand ) procesadores vectoriales
MISO (Multiple Instruction, Single Operand ) No implementado
MIMO (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters

ARQUITECTURA DEL CONJUNTO DE INSTRUCCIONES


COMPONENTES
-

Las celdas de almacenamiento (libros Registro, memoria, etc.)


El conjunto de instrucciones de la mquina (Set De posibles operaciones)
El formato de instruccin (Tamao Y el significado de los campos dentro de la
instruccin)

MEMORIA

Qu necesitan las instrucciones para especificar?


- Operacin a realizar
- add R0, r1, r3 // cdigo de operacin
- Dnde encontrar el operando u operandos
- Add r0, R1, R3 // operandos de fuente
- Coloque a consecuencia tienda
- Add r0, r1, r3 // destino
- Ubicacin de la prxima instruccin
- Add r0, r1, r3 endloop br
CICLO BSICO DE UNA INSTRUCCIN

BSQUEDA DE
INSTRUCCIN

DECODIFICA
INSTRUCCIN

BSQUEDA DE
OPERANDOS

EJECUTA
ALMACENA
RESULTADOS

SIGUIENTE
INSTRUCCIN

CLASES DE INSTRUCCIONES
1. Instrucciones de movimiento de datos
- Load.- Fuente es la memoria y el destino es el registro
- Store.- Fuente es el registro y destino es la memoria
2. Aritmticas y lgicas (ALU) Instrucciones
- Add, Sub, Shift, etc.
3. Instrucciones de salto (instrucciones de control de flujo)
- Loc Br, Brz Loc2, -unconditional o condicional
ramas

EJEMPLO DE INSTRUCCIONES DE MOVIMIENTO DE DATOS

EJEMPLOS DE ALU (UNIDAD ARITMTICA Y LGICA)

EJEMPLOS DE INSTRUCCIONES DE SALTO

CPU Registros asociados con el flujo de Control-Rama de instrucciones


-

Programa contador usualmente contiene la direccin, o "apunta a" la siguiente


instruccin
Cdigos de condicin puede controlar las ramas
Objetivos de las ramas pueden estar contenidos en registros separados

HLL Implementado condicionales por cambio de control de flujo


-

Las condiciones son computarizadas por instrucciones aritmticas


Contador de programa se cambia a ejecutar nicamente
instrucciones asociadas con verdaderas condiciones

Clases de Mquinas
-

Dnde son situados los operandos y el resultado y la forma en que se han


especificado por la instruccin
CPU registros o la memoria principal

EJEMPLO: Evaluar a = (b + c) * para mquinas de 3 2 1 - y 0-direcciones.

Mquinas reales no son tan simples


-

Mquinas ms reales tienen una mezcla de 3, 2, 1, 0, 1 1/2 instrucciones de direccin


Una distincin se puede hacer de si instrucciones aritmticas utilizan datos de
memoria
Si las instrucciones ALU slo utilizan registros para operandos y el resultado, tipo de
mquina es almacenamiento de carga). Slo referencia de carga y almacenar
instrucciones
memoria

Otras mquinas tienen una mezcla de memoria de registros


y las instrucciones de la memoria- memoria

MODOS DE DIRECCIONAMIENTO

FUNDAMENTOS DE LENGUAJE ENSAMBLADOR


El lenguaje ensamblador como cualquier lenguaje de programacin es un conjunto de
palabras que le indican al ordenador lo que tiene que hacer. Sin embargo la diferencia
fundamental es que cada instruccin escrita en lenguaje ensamblador tiene una
correspondencia exacta con una operacin en el procesador. Por lo que son
operaciones muy sencillas tales como: Cargar 32 en el registro BX o Transferir el
contenido del registro CL al CH. As pues, las palabras del lenguaje ensamblador son
nemotcnicos que representan el cdigo mquina, lenguaje que entiende el
procesador.
Para nuestro conocimiento y uso de lenguaje ensamblador nos basaremos en los
microprocesadores INTEL 8086
ESTRUCTURA
El microprocesador 8086 tiene catorce registros de 16 bits:

Registros de datos

Registros de segmento

Registros punteros de la pila

Registros ndices

Registro de instrucciones

Registro de flags de estado

ALMACENAMIENTO DE DATOS
El 8086/88 usa el formato de almacenamiento denominado little endian, esto quiere
decir que el byte menos significativa (LSB) del dato es guardada en la parte baja de la
memoria. Por ejemplo el dato 0x1122 ser almacenado en memoria:
Es importante tener esto en cuanta a la hora de acceder a los datos para operar con
ellos.
SEGMENTACIN
El 8086/88 tiene un ancho de bus de datos de 16 bits y un ancho de bus de direcciones
de 20 bits. Con 20 bits de direcciones se puede acceder a 220 = 1 Mega posiciones de
memoria. Como cada direccin de memoria contiene un byte, el total de memoria

accedido por el procesador es de 1 Mbyte. El bus de datos de 16 bits lo que implica


que en cada acceso a memoria se leen dos posiciones. Esta es la razn por que la que
es importante saber el modo de almacenamiento de los datos en memoria, visto en el
apartado anterior.
REGISTROS INTERNOS
El 8086/88 dispone de 4 registros de datos, 4 registros de segmento, 5 registros de
ndice y 1 registro de estado.
Registros de datos
Los registros de datos son de 16 bits, aunque estn divididos. lo que permite su acceso
en 8 bits. Estos registros son de propsito general aunque todos tiene alguna funcin
por defecto.
- AX (acumulador) se usa para almacenar el resultado de las operaciones, es al
nico registro con el que se puede hacer divisiones y multiplicaciones. Puede
ser accedido en 8 bits como AH para la parte alta (HIGH) y AL (LOW) para la
parte baja.

BX (registro base) almacena la direccin base para los accesos a memoria.


Tambin puede accederse como BH y BL, parte alta y baja respectivamente.
CX (contador) acta como contador en los bucles de repeticin. CL (parte baja
del registro) almacena el desplazamiento en las operaciones de desplazamiento
y rotacin de mltiples bits.
DX (datos) es usado para almacenar los datos de las operaciones.

Registros de segmento
Los registros de segmento son de 16 bits (como ya se dicho antes) y contienen el valor
de segmento.
- CS (segmento de cdigo) contiene el valor de segmento donde se encuentra el
cdigo. Acta en conjuncin con el registro IP (que veremos ms adelante) para
obtener la direccin de memoria que contiene la prxima instruccin. Este
registro es modificado por las instrucciones de saltos lejanos.
- DS (segmento de datos) contiene el segmento donde estn los datos.
- ES (segmento extra de datos) es usado para acceder a otro segmento que
contiene ms datos.
- SS (segmento de pila) contiene el valor del segmento donde est la pila. Se usa
conjuntamente con el registro SP para obtener la direccin donde se encuentra
el ltimo valor almacenado en la pila por el procesador.
Registros de ndice
Estos registros son usados como ndices por algunas instrucciones. Tambin pueden
ser usados como operandos (excepto el registro IP).
- IP (ndice de programa) almacena el desplazamiento dentro del segmento de
cdigo. Este registro junto al registro CS apunta a la direccin de la prxima

instruccin. No puede ser usado como operando en operaciones


aritmtico/lgicas.
SI (ndice de origen) almacena el desplazamiento del operando de origen en
memoria en algunos tipos de operaciones (operaciones con operandos en
memoria).
DI (ndice de destino) almacena el desplazamiento del operando de destino en
memoria en algunos tipos de operaciones (operaciones con operandos en
memoria).
SP (ndice de pila) almacena el desplazamiento dentro del segmento de pila, y
apunta al ltimo elemento introducido en la pila. Se usa conjuntamente con el
registro SS.
BP (ndice de base) se usa para almacenar desplazamiento en los distintos
segmentos. Por defecto es el segmento de la pila.

Registro de estado
El registro de estado contiene una serie de banderas que indican distintas situaciones
en las que se encuentra el procesador.

OF: Desbordamiento
DF: Direccin en operaciones con cadenas
IF: Indicador de interrupcin
TF: Modo traza
SF: Indicador de signo en operaciones con signo
ZF: Indicador de cero
AF: Acarreo del bit 3 en AL
PF: Bit de paridad
CF: Acarreo

MODOS DE DIRECCIONAMIENTO
Los modos de direccionamiento indican la manera de obtener los operandos y son:
Direccionamiento de registro
Direccionamiento inmediato
Direccionamiento directo
Direccionamiento indirecto mediante registro
Direccionamiento indirecto por registro base
Direccionamiento indexado
Direccionamiento indexado respecto a una base
El tipo de direccionamiento se determina en funcin de los operandos de la
instruccin.
La instruccin MOV realiza transferencia de datos desde un operando origen a un
operando destino (se ver ms con ms detalle en los siguientes apartados). Su
formato es el siguiente:

MOV destino, origen


Direccionamiento de registro
Cuando ambos operando son un registro.
Ejemplo:
MOV AX,BX ;transfiere el contenido de BX en AX
Direccionamiento inmediato
Cuando el operando origen es una constante.
Ejemplo:
MOV AX,500 ;carga en AX el valor 500.
Direccionamiento directo
Cuando el operando es una direccin de memoria. sta puede ser especificada con su
valor entre [ ], o bien mediante una variable definida previamente (cmo definir
etiquetas se ver ms adelante).
Ejemplo:
MOV BX,[1000] ; almacena en BX el contenido de la direccin de
memoria DS:1000.
MOV AX,TABLA ; almacena en AX el contenido de la direccin de
memoria DS:TABLA.

Direccionamiento indirecto mediante registro


Cuando el operando esta en memoria en una posicin contenida en un registro (BX,
BP, SI o DI).
Ejemplo:
MOV AX,[BX] ; almacena en AX

MOV [BP],CX ; almacena en al direccin apuntada por BP en contenido de CX.

Direccionamiento por registro base


Cuando el operando esta en memoria en una posicin apuntada por el registro BX o BP
al que se le aade un determinado desplazamiento.
Este tipo de direccionamiento permite acceder ,de una forma cmoda, a estructuras
de datos que se encuentran en memoria.
Ejemplo:
MOV AX, [BP] + 2 ; almacena en AX el contenido de la posicin de
memoria que resulte de sumar 2 al contenido de BP
(dentro de segmento de pila).
Equivalente a MOV AX,[BP + 2]

Direccionamiento indexado
Cuando la direccin del operando es obtenida como la suma de un desplazamiento
ms un ndice (DI, SI).
Ejemplo:
MOV AX, TABLA[DI] ; almacena en AX el contenido de la posicin
de memoria apuntada por el resultado de sumarle a TABLA el contenido de DI.

Direccionamiento indexado respecto a una base


Cuando la direccin del operando se obtiene de la suma de un registro base (BP o BX),
de un indice (DI, SI) y opcionalmente un desplazamiento.
Ejemplo:
MOV AX, TABLA[BX][DI] ; almacena en AX el contenido de la
posicin de memoria apuntada por la suma de TABLA, el contenido de BX y el
contenido de DI.
JUEGOS DE INSTRUCCCIONES
Las instrucciones del 8086/88 se pueden dividir en varios grupos:
Instrucciones de transferencia de datos
Instrucciones aritmticas
Instrucciones lgicas
Instrucciones de desplazamiento y rotaciones
Instrucciones de E/S
Instrucciones de control del flujo del programa
Instrucciones de cadena de caracteres
Instrucciones de transferencia de datos
Las instrucciones de transferencia de datos copian datos de un sitio a otro y son: MOV,
XCHG,
XLAT, LEA, LDS, LES, LAHF, SAHF, PUSH, PUSHF, POP, POPF.
MOV realiza la transferencia de datos del operando de origen al destino. Como ya
hemos visto en la parte de los modos de direccionamiento, MOV admite todos los
tipos de direccionamiento.
Ambos operandos deben ser del mismo tamao y no pueden estar ambos en memoria.
MOV reg, reg
MOV
MOV
MOV
MOV

; reg es cualquier registro.


mem, reg
; mem indica una posicin de memoria
reg, mem
mem, dato ; dato es una constante
reg, dato

MOV
MOV
MOV
MOV

seg-reg, mem
seg-reg, reg
mem, seg-reg
reg, seg-reg

;seg-reg es un registro de segmento

XCHG realiza el intercambio entre los valores de los operandos. Puede tener operando
en registros y en memoria:
XCHG reg, mem
XCHG reg, reg
XCHG mem, reg
Ejemplo:

PUSH y POP realizan las operaciones de apilado y desapilado en la pila del


procesador respectivamente, admiten todos los tipos de direccionamiento (excepto
inmediato). Los operandos deben ser siempre de 16 bits
PUSH reg
PUSH mem
PUSH seg-reg
POP reg
POP mem
POP seg-reg
Ejemplos:
PUSH AX
POP DS

; enva a la pila AX
; carga el primer elemento de la pila en DS

PUSHF y POPF apila y desapila el registro de estado, respectivamente.


LAHF carga la parte baja del registro de estado en AH.
SAHF carga AH en el la parte baja del registro de estado.
Instrucciones aritmticas
Este tipo de instrucciones realizan operaciones aritmticas con los operandos. Y son:
ADD, ADC, DAA, AAA, SUB, SBB, DAS, AAS, NEG, MUL, IMUL, AAM, DIV, IDIV, AAD,
CBW, CWB, INC,DEC.
ADD y ADC realizan la suma y la suma con acarreo (bit CF del registro de estado) de
dos operandos, respectivamente, y guardan el resultado en el primero de ellos.
Admiten todos los tipos de direccionamiento (excepto que ambos operando estn en
memoria).
ADD/ADC reg, reg

ADD/ADC
ADD/ADC
ADD/ADC
ADD/ADC

mem, reg
reg, mem
reg, inmediato
mem, inmediato

Ejemplo:
; J = 34+f
MOV AX, F
ADD AX, 34
MOV J, AX
Estas instrucciones afectan a los bits OF, SF, ZF, AF, PF, CF del registro de estado.
DAA realizan la correccin BCD empaquetado del resultado de una suma en AL. El
8086/88 realiza las sumas asumiendo que los operados son ambos valores binarios, de
manera que se suman dos valores codificados en BCD empaquetado el resultado
puede no ser un valor
vlido en este formato:

Esta instruccin si AF = 1 o el valor de los 4 bits menos significativos del AL es mayor


que 9, entonces realiza el primer ajuste BCD. Para ello suma a AL el valor 06h.
Despus si CF = 1 o el valor de los 4 bits ms significativos de AL es mayor que 9,
realizar el segundo ajuste BCD. Para ello suma a AL el valor 60h
Esta instruccin afecta tambin a los bits OF, SF, ZF, AF y PF del registro de estado.
SUB y SBB realizan la resta y la resta con acarreo, respectivamente, de dos operandos
y guardan el resultado en el primero de ellos. Admiten todos los modos de
direccionamiento, excepto dos operando en memoria.SUB/SBB reg, reg
SUB/SBB
SUB/SBB
SUB/SBB
SUB/SBB

mem, reg
reg, mem
reg, inmediato
mem, inmediato

Ejemplo:
; J = F-34
MOV AX, F
SUB AX, 34
MOV J, AX
Estas instrucciones afectan a los bits OF, SF, ZF, AF, PF, CF del registro de estado.
DAS realizan la correccin BCD empaquetado del resultado de una resta en AL. Actan
de manera similar a la instruccin de ajuste de la suma

NEG realiza la operacin aritmtica de negado de un operando y guarda el resultado


en el mismo operando. Admite todos los tipos de direccionamiento, excepto
inmediato.
NEG reg
NEG mem
La operacin que realiza es: 0 operando.
Afecta a todos lo bits del registro de estado, poniendo el bit AF a 1.
MUL e IMUL realizan la multiplicacin y multiplicacin con signo, respectivamente,
de contenido de AX y del operando indicado, guardando el resultado en AX, para
operaciones de 8 bits y en DX:AX para operaciones de 16 bits. Los formatos son:
MUL/IMUL reg
MUL/IMUL mem
Ejemplo

DIV e IDIV realizan la divisin y la divisin con signo, respectivamente. De AX entre el


operando para operaciones de 8 bits, guardando el cociente en AL y el resto en AH; y
DX:AX entre el operando para operaciones de 16 bits guardando el cociente en AX y el
resto en
DX.DIV/IDIV reg
DIV/IDIV mem
Ejemplo:

INC y DEC realizan las operaciones de incremento y decremento, respectivamente,


de un operando, guardando el resultado en el mismo operando. Admiten todos los
modos de direccionamiento excepto el inmediato..
INC/DEC reg
INC/DEV mem
Afectan a todos los bits de estado del registro de estado.
Instrucciones lgicas
Realizan las operaciones lgicas y son: OR, XOR, AND, NOT, TEST, CMP.
OR, XOR y AND realizan las operaciones lgicas O, O exclusiva e Y,
respectivamente, de dos operandos, guardando el resultado en el primero de ellos.
Estas operaciones son bit a bit. La tabla de verdad de estas funciones es:
Operandos

AND

OR

XOR

Admiten todos los modos de direccionamiento excepto los dos operandos en memori
a.
AND/OR/XOR reg, reg
AND/OR/XOR reg, mem
AND/OR/XOR mem, reg
AND/OR/XOR reg, inmediato
AND/OR/XOR mem, inmediato
Afectan a los bits SF, ZF, PF del registro de estado. Adems ponen a cero los bits CF y
OF.
NOT realiza la operacin de negado lgico de los bits del operando, guardando el
resultado en el mismo operando. Admite todos los modos direccionamiento excepto
inmediato.
NOT reg
NOT mem
No afecta a ningn bit del registro de estado.
Instrucciones de comparacin
Estas instrucciones realizan funciones de comparacin no guardando el resultado, pero
si afecta al registro de estado (no cambian a los operandos). Son muy tiles en las
instrucciones de salto que se vern ms adelante.

TEST realiza la operacin lgica Y de dos operandos, pero NO afecta a ninguno de


ellos, SLO afecta al registro de estado. Admite todos los tipos de direccionamiento
excepto los dos operandos en memoria
TEST reg, reg
TEST reg, mem
TEST mem, reg
TEST reg, inmediato
TEST mem, inmediato
Afecta a todos los bits del registro de estado, de la misma manera que la instruccin
AND.
CMP realiza la resta de los dos operandos (como la instruccin SUB) pero NO afecta a
ninguno de ellos, SLO afecta al registro de estado. Admite todos los modos de
direccionamiento, excepto los dos operando en memoria.
CMP
CMP
CMP
CMP
CMP

reg, reg
reg, mem
mem, reg
reg, inmediato
mem, inmediato

Se usa con las instrucciones de salto que veremos ms adelante.


Instrucciones de desplazamiento y rotaciones
Realizan operaciones de desplazamiento y rotaciones de bits, y son: SAL/SHL, SAR,
SHR,
ROL,ROR, RCL, RCR.
SAL/SHL realiza desplazamiento a la izquierda del primer operando tantos bits como
indique el segundo operando, introduciendo un 0 y guardando el bit que sale en el bit
CF del registro de estado.
Admite los siguientes formatos:
SAL/SHL reg, 1; desplaza 1 vez el contenido de reg
SAL/SHL mem, 1
SAL/SHL reg, CL; desplaza tantas veces el contenido de reg como
indique CL.
SAL/SHL mem, CL
Afecta a los bit OF, CF del registro de estado.
SAR realiza el desplazamiento a la derecha del operando, repitiendo el bit de signo y
guardando el resultado en el bit CF del registro de estado.

Admite los siguientes formatos:


SAR reg, 1; desplaza 1 vez el contenido de reg

SAR mem, 1
SAR reg, CL; desplaza tantas veces el contenido de reg como indique
CL.
SAR mem, CL
Afecta a todos los bit del registro de estado.
SHR realiza el desplazamiento a la derecha del operando, introduciendo un 0 y
guardando el resultado en el bit CF del registro de estado.
NOTA: Las instrucciones SHL/SAL y SAR se suelen usar para hacer divisiones y
multiplicaciones, respectivamente, por nmeros potencia de dos (2, 4, 8,16, 32, 64 y
128), de manera ms eficiente que las instrucciones DIV y MUL.
Ejemplo:
MOV AX, 40h
MOV CL, 2
SHL AX, CL
; es equivalente y mas eficiente que
MOV AX, 40h
MOV DX, 00h
MOV BX, 04h
DIV BX
Instrucciones de E/S
Se usan para la comunicacin con los dispositivos perifricos. Y son IN, OUT.
IN lee de un puerto (slo si la direccin del puerto es menor que 255). Admite las
siguientes formas:
IN AX,
guarda
IN AX,
guarda

inmediato;obtiene un WORD del puerto especificado y lo


en AX
DX;obtiene un WORD del puerto especificado en DX y lo
en AX

OUT escribe en un puerto (slo si la direccin del puerto es menor que 255). Admite
las siguientes formas:
OUT inmediato, AX ;escribe un WORD (contenido en AX) en el puerto especificado
OUT DX, AX; escribe un WORD (contenido en AX) en el puerto especificado en DX.
4.6. Instrucciones de control del programa
Se utilizan para el control del programa, son instrucciones de salto, bucles y llamadas a
procedimientos.
Instrucciones de salto
Estas instrucciones permiten saltar a otras partes del cdigo. Todas cambian el registro
IP (contador de programa) y el registro CS (segmento de cdigo) si es un salto lejano.
Un salto es lejano cuando la direccin a la que se salta no est en el mismo segmento
de cdigo.

Existen dos tipos de saltos: los absolutos; en lo que se especifica la direccin absoluta a
la que se salta; y los relativos; que son saltos hacia delante o hacia atrs desde el valor
de IP.
JMP realiza un salto incondicional a la direccin especificada. La siguiente tabla relacio
na los tipos de saltos y los argumentos que puede tomar esta instruccin.
Saltos condicionales estas instrucciones realizan el salto a la direccin especificada en
funcin de si se cumple o no una condicin. Para evaluar la condicin se considera el
registro de estado, esto quiere decir que la condicin depende directamente de la
instruccin anterior. En la siguiente tabla se presentan estas instrucciones en funcin
del tipo de operandos y la condicin que se quiere evaluar.
Condicin

Sin signo

Con signo

JE/JZ

JE/JZ

>

JA/JNBE

JG

<

JB/JNAE

JL

JAE/JNB

JGE

JBE/JNA

JLE

JNE/JNZ

JNE/JNZ

Tambin existen instrucciones que evalan slo un bit del registro de estado.
BIT

=0

=1

ZF

JZ

JNZ

CF

JC

JNC

OF

JO

JNO

SF

JS

JNS

SP

JP

JNP

Estos saltos son siempre relativos, es decir, una direccin de 8 16 bits.


Instruccin de llamada a procedimiento CALL y RET
La instruccin CALL se usa para realizar una llamada a un procedimiento y la
instruccin RET se usa para volver de un procedimiento.
Cuando se realiza una llamada a procedimiento con CALL, se guardan en la pila el valor
de IP en caso de un salto corto, y de CS e IP en caso de un salto lejano.
Cuando se ejecuta la instruccin RET se recuperan de la pila los valores de IP o de CS e
IP dependiendo del caso. Al salir de un procedimiento es necesario dejar la pila como
estaba; para ello podemos utilizar la instruccin pop, o bien ejecutar la instruccin RET
n donde n es el nmero de posiciones que deben descartarse de la pila.

Bucles
Las instrucciones de bucle se usan para realizar estructuras repetitivas, y utilizan el
registro CX como contador..
LOOP esta instruccin hace que el programa salte a la direccin especificada (salto
dentro del segmento), mientras que CX sea distinto de 0 y decrementa CX en 1 cada
vez.
LOOP salto
Ejemplo:
MOV CX, 100
COMIENZO:

LOOP COMIENZO; este bucle se repite 100


LOOPNE/LOOPNZ esta instruccin salta a la direccin especificada mientras que CX sea
distinto de 0 y si ZF = 0.
LOOPNE/LOOPNZ salto
Esta instruccin proporciona una ruptura del bucle adicional.
LOOPE/LOOPZ esta instruccin acta como la anterior pero la condicin adicional es
ZF = 1.
LOOPE/LOOPZ salto
JCXZ esta instruccin realiza un salto si CX = 0.
JCXZ salto
Ninguna de estas instrucciones afectan al registro de estado.
Instrucciones de cadena de caracteres
Realizan operaciones con cadenas de caracteres. Antes de ver las instrucciones que
manipulan cadenas, es necesario comentar el uso de los prefijos de repeticin,
modificadores que slo se pueden usar con las instrucciones de manipulacin de
cadenas.
REP este modificador repite la instruccin a la que acompaa mientras que CX sea
distinto de 0 (decrementa CX cada vez). Las instrucciones con las que se puede usar
son MOVS, MOVDSW o STOS.
MOVS destino, fuente
REP MOVS destino, fuente
REPE/REPZ este modificador repite la instruccin a la que acompaa mientras que CX
sea distinto de 0 y ZF = 1 (decrementa CX cada vez). Las instrucciones con las que se
puede usar son CMPS o SCAS.
CMPS destino, fuente
REPE/REPZ
CMPS destino, fuente

REPNE/REPNZ este modificador repite la instruccin a la que acompaa si CX es


distinto de 0 y ZF = 0 (decrementa CX cada vez). Las instrucciones con las que se puede
usar son CMPS o SCAS.
REPNE/REPN CMPS destino, fuente
MOVS/MOVSW copia un byte o un WORD de una parte a otra de la memoria.
MOVS destino, fuente
donde destino es ES:DI y fuente es DS:SI, lo que quiere decir que antes de utilizar la
instruccin hay que cargar en SI y DI los valores apropiados.
Ejemplo:
LEA SI, fuente
LEA DI, ES:destino
MOV CX, 100
REP
MOVS destino, fuente
Por lo tanto, para usar esta instruccin hay que seguir los siguientes pasos:
1.- Colocar el bit DF (direccin de recorrido) al valor correcto (lo veremos ms
adelante).
2.- Cargar en SI el desplazamiento de la fuente.
3.- Cargar en DI es desplazamiento del destino.
4.- Cargar en CX el nmero de elementos a mover.
5.- Ejecutar la instruccin MOVS/MOVSB con el prefijo REP.
Esta instruccin no afecta al registro de estado.
CMPS realiza la comparacin de dos cadenas, devuelve el resultado en el registro de
estado.
CMPS destino, fuente
Hay que realizar los mismos pasos para usar esta instruccin que en el caso de la
instruccin MOVS/MOVSB, la nica diferencia es que el modificador que usa es
REPE/REPZ o REPNE/REPNZ.
Esta instruccin afecta a todos los bits del registro de estado.
SCAS/SCASW localiza el valor contenido en AL o AX (segn sea byte o WORD) en una
cadena, si encuentra el elemento, devuelve en DI el desplazamiento del siguiente
elemento.
SCAS/SCASW destino
Al igual que las instrucciones anteriores es necesario cargar en DI el desplazamiento
del primer elemento de la cadena.
Ejemplo
; busca en CADENA un espacio en blanco
LEA DI, ES:CADENA
MOV AL,

MOV CX, 100


REP

SCAS CADENA

Esta instruccin afecta a todos los bits del registro de estado.


LODS/LODSW transfiere un elemento de una cadena (fuente) a AL o AX,
respectivamente.
LODS/LODSW fuente
Esta instruccin tambin necesita que la fuente est cargada en SI.
STOS/STOSW transfiere el contenido de AL o AX, respectivamente, a una cadena
(destino).
STOS/STOSW destino
Tambin debe cargarse en DI el desplazamiento de la cadena, y puede usarse con el
modificador REP.
Ejemplo:
; busca en una cadena un 0 y si lo encuentra rellena las siguientes
5 posiciones con ceros.
LEA DI, ES:CADENA
MOV AX, 0
MOV CX, 200
REPNE SCASW
JCXZ no_encon
SUB DI, 2
MOV CX, 6
REP
STOS CADENA
no_encon:

Otras instrucciones
HLT parada del procesador, solo es posible salir de esta estado reiniciando o por medio
de una interrupcin externa.
HLT
LOCK bloquea el acceso al bus por parte de otro dispositivo mientras dure la ejecucin
de la instruccin a la que acompaa.
LOCK instruccin
WAIT genera estados de espera en el procesador hasta que se active la lnea TEST,
generalmente usada por el coprocesador.
WAIT
CLC/STC pone a 0 a 1, respectivamente, el bit CF del registro de estado.
CLC/STC
CMC cambia el valor del bit CF del registro de estado.
CMC

CLI/STI pone a 0 a 1, respectivamente, el bit IF del registro de estado.


CLI/STI
CLD/STD pone a 0 a 1, respectivamente, el bit DF del registro de estado. Este bit es el
que se usa para recorrer una cadena de manera ascendente o descendente en
memoria.
CLD/STD
NOP no operacin, hace que el procesador ejecute NADA.
NOP
Etiquetas, comentarios y directivas
Las etiquetas asignan un nombre a una instruccin. Esto permite hacer referencia a
ellas en el resto del programa. Pueden tener una mximo de 31 caracteres y deben
terminar en :.
Los comentarios permiten describir las sentencias de un programa, facilitando su
comprensin. Comienzan por ;, el ensamblador ignora el resto de la lnea.
Ejemplo:
INI_CONT: MOV CX, DI ; inicia el contador
Las directivas son comandos que afectan al ensamblador, no al procesador. Se puede
usar para preparar segmentos y procedimientos, definir smbolos, reservar memoria,
etc. La mayora de las directivas no generan cdigo objeto.
Las directivas ms comunes son
:
Las directivas simplificadas se utilizan para la definicin de segmentos..
MODEL para usar las directivas simplificadas es necesario incluir esta directiva que
define el modelo de memoria que debe usarse. Algunos de los argumentos que puede
tomar son:
TINY: para programa con un solo segmento para datos y cdigo (tipo .COM)
SMALL: para programas con un solo segmento de datos (64K, incluida la pila) y otro de
cdigo (64K).
LARGE: varios segmentos de datos y cdigo (1Mb para cada uno).
MEDIUM: Varios segmentos de cdigo y 1 de datos.
COMPACT: 1 segmento de cdigo y varios de datos.
Con esta directiva se preparan todos los segmentos y el ensamblador reconoce, a
partir de este momento, las directivas .DATA, .STACK y .CODE..
STACK n sirve para fijar un tamao n del segmento de pila, por defecto 1K.
.DATA abre el segmento de datos.

.CODE abre el segmento de cdigo, al final cdigo debe aparecer END.


Una vez inicializado los segmento se permite usar los smbolos @CODE y @DATA en
lugar del nombre de los segmentos de cdigo y datos respectivamente.
Departamento de Arquitectura y Tecnologa de Computadores: Universidad de Sevilla
Justo despus de la directiva .CODE hay que inicializar el segmento de datos (ya que la
directiva no genera cdigo):
MOV AX, @DATA
MOV DS, AX
PROC y ENDP definen un procedimiento (o subprograma).
EQU asigna nombre a nmeros, combinaciones de direccionamiento y a otras cosas
que se vayan a usar repetidas veces en el cdigo.
Ejemplo
K EQU 1024 ; especifica una constante
TABLA EQU DS:[BP][SI] ;especifica una combinacin de direc.
VELOCIDAD EQU TOCINO ; da un nombre alternativo
DB, DW y DD se usan para asignar espacio a las variables en memoria. DB tamao
byte, DW tamao WORD y DD tamao DWORD.
Ejemplo:
MSG_ERROR DB has cometido un error, zoquete ;reserva para MSG constante de
tamao byte con valor 255, este es un caso especial de la directiva DB, que tambin
pude ser usada para declarar cadenas de caracteres.
PESO_MEDIO DW ? ; Reserva para PESO_MEDIO tamao DWORD pero no inicializa el
valor (?)
n DUP reserva tantas posiciones del tamao que se indique (DB, DW, DD) como
indique n.
Ejemplo:
.MODEL SMALL
.STACK 100H
.DATA
max EQU 100
cad DB max DUP ?
dac DB max DUP ?
.CODE
MOV AX, @DATA
MOV DS, AX

END

EJERCICIOS EN CLASE:
EJEMPLO 1:
DOSSEG
.MODEL SMALL
.STACK 100H
.DATA
Mensaje_1 DB 'Ingrese el primer numero',13,10,'$'
Mensaje_2 DB 'Ingrese el segundo numero',13,10,'$'
dato_1 DB 1 DUP (?)
dato_2 DB 1 DUP (?)
resul DB 2 DUP (?)
.CODE
mov ax,@data
mov ds,ax
mov ah,9
mov dx, OFFSET Mensaje_1
int 21h
mov ah,01H
int 21h
cmp al,13
jz paso_1
mov dato_1,al
mov ah,9
mov dx, OFFSET Mensaje_2
int 21h
mov ah,01H
int 21h
cmp al,13
jz paso_1
mov dato_2,al
add al,dato_1
sub al,30h
mov dl,al
mov ah,2
int 21h
paso_1:
mov ah,4ch
int 21h
END

EJEMPLO 2: SUMA DE DOS DIGITOS


.MODEL SMALL
.STACK 100h
.DATA
mens_1 DB 13,10,'INGRESE LA UNIDAD DEL NUMERO:','$'
mens_2 DB 13,10,'INGRESE LA DECENA DEL NUMERO:','$'
dato_1 DB 1 DUP(?)
dato_2 DB 1 DUP(?)
dato_3 DB 1 DUP(?)
dato_4 DB 1 DUP(?)
aux DB 1 DUP(?)
aux1 DB 1 DUP(?)
suma DB 13,10,'SEGUNDO NUMERO:'
R_SUMA DB 2 DUP(?)
N_linea DB 13,10,'$'
suma1 DB 13,10,'SEGUNDO NUMERO:'
R_SUMA1 DB 2 DUP(?)
N_linea1 DB 13,10,'$'
suma2 DB 13,10,'SUMA:'
R_SUMA2 DB 3 DUP(?)
N_linea2 DB 13,10,'$'
.CODE
mov ax,@data
mov ds,ax
d_nuevo1:
mov ah,9
mov dx,OFFSET mens_1
int 21h
mov ah,01h
int 21h
cmp al,30H
js d_nuevo1
cmp al,3Ah
jns d_nuevo1
sub al,30h
mov dato_1,al
d_nuevo2:
mov cl,10
mov ah,9

mov dx,OFFSET mens_2


int 21h
mov ah,01h
int 21h
cmp al,30H
js d_nuevo2
cmp al,3Ah
jns d_nuevo2
sub al,30h
mov dato_2,al
mul cl
add al,dato_1
mov aux,al
mov al,aux
mov R_SUMA,al
jmp salto1
d_nuevo3:
mov ah,9
mov dx,OFFSET mens_1
int 21h
mov ah,01h
int 21h
cmp al,30H
js d_nuevo3
cmp al,3Ah
jns d_nuevo3
sub al,30h
mov dato_3,al
d_nuevo4:
mov cl,10
mov ah,9
mov dx,OFFSET mens_2
int 21h
mov ah,01h
int 21h
cmp al,30H
js d_nuevo4
cmp al,3Ah
jns d_nuevo4
sub al,30h
mov dato_4,al
mul cl
add al,dato_3
mov aux1,al
mov al,aux1
mov R_SUMA1,al

jmp salto2
salto1:
call bcd
mov ah,09h
MOV dx,OFFSET SUMA
int 21h
jmp d_nuevo3
bcd:
push cx
mov ax,0h
mov al,R_SUMA
mov cl,0AH
div cl
add ah,30H
mov [R_SUMA+1],ah
mov ah,0h
div cl
add ah,30h
mov [R_SUMA],ah
mov ah,0h
pop cx
RET
salto2:
call bcd1
mov ah,09h
MOV dx,OFFSET SUMA1
int 21h
jmp salto3
bcd1:
push cx
mov ax,0h
mov al,R_SUMA1
mov cl,0AH
div cl
add ah,30H
mov [R_SUMA1+1],ah
mov ah,0h
div cl
add ah,30h
mov [R_SUMA1],ah
mov ah,0h
pop cx
RET
salto3:
mov al,aux
add al,aux1

mov R_SUMA2,al
call bcd2
mov ah,09h
MOV dx,OFFSET SUMA2
int 21h
mov ah,4ch
int 21h
bcd2:
push cx
mov ax,0h
mov al,R_SUMA2
mov cl,0AH
div cl
add ah,30H
mov [R_SUMA2+2],ah
mov ah,0h
div cl
add ah,30h
mov [R_SUMA2+1],ah
mov ah,0h
div cl
add ah,30h
mov [R_SUMA2],ah
mov ah,0h
pop cx
RET
END

CARACTERIZACIN DE LOS ELEMENTOS DE UN COMPUTADOR


PROCESADORES
Caractersticas: Existen caractersticas comunes a todos los modelos. Estas
caractersticas son las que debemos tomar en cuenta al seleccionar que tipo de
procesador nos conviene elegir:
VELOCIDAD INTERNA DEL PROCESADOR
BUS DE DATOS
FRONT SIDE BUS (FSB)
MEMORIAS
Velocidad Interna: Se refiere a los ciclos por segundo a los que opera, la ejecucin de
una instruccin puede tardar uno o ms ciclos por segundo incluso hay procesadores
que pueden ejecutar varias instrucciones en un ciclo de reloj, por lo que mientras
mayor sea la velocidad interna ms instrucciones podr procesar.
Actualmente se habla de frecuencias de Gigaherzios(GHz.), o de Megaherzios(MHz.).
Lo que supone miles de millones o millones, respectivamente, de ciclos por segundo.
Bus de datos: Los procesadores actualmente funcionan con una anchura de banda de
bus de 64 bits (un bit es un dgito binario, una unidad de informacin que puede ser
un 1 o un 0) esto significa que puede transmitir simultneamente 64 bits de datos
Memorias: En el pasado, los procesadores contaban slo con la memoria RAM hasta
que lleg un momento en que los procesadores eran ms potentes que la memoria
RAM, con lo que el procesador estaba ampliamente desaprovechado como solucin a
este problema se implement la memoria Cache.
En la memoria Cache en general se almacena informacin para su pronta
recuperacin, es decir, si el procesador detecta que existen instrucciones que son
constantemente utilizadas, las guarda en la memoria cache para obtener esta
informacin mucho ms rpido, y no viajar hasta la memoria RAM para obtenerla.
Front side bus (FSB): Aqu es a donde se comunica el subsistema de memoria y los
dispositivos que se comunican con el procesador mediante los canales de la tarjeta
madre, la velocidad de este Bus es lo que hace que nuestro procesador se comunique
rpido o lento con el puente norte (memoria RAM, video AGP o PCI express) y el
puente sur (Discos duros, comunicaciones, dispositivos de entrada, USB, etc.) de
nuestra tarjeta madre. Este es un factor muy importante a considerar puesto que si la
velocidad de este Front Side Bus(FSB) es poca, la informacin pasar lentamente al
interior del procesador creando un cuello de botella.

MOTHERBOARD
Caractersticas:
Zcalo de conexin para microprocesadores:
-

Este conector es donde se aloja el microprocesador.

Chipset:
-

Circuito integrado encargado de manejar todas las seales lgicas.

Zcalos de conexin para memoria RAM


-

Toma y deposita la informacin numrica que precisa para sus operaciones.

Ranuras de expansin:
-

Ranura AGP._ Para la tarjeta de video.


Ranura PCI._ Ranura de expansin.
Ranura ISA-16._ Estandarizada a partir de la segunda generacin.
Ranura CNR._ Para facilitar la conexin de modem con tarjeta de audio.

Conectores para discos:


-

Disquetes, disco duro, CD-ROM.

Puertos I/O:
-

Puertos Seriales._ Para comunicarse con dispositivos de baja velocidad.


Puertos Paralelos._ Para conectar la impresora, scanner, discos externos.
Puertos USB._ Para comunicarse con elementos externos.
Puertos de teclado y ratn.

MEMORIA:
Jerarqua de la memoria:

Memoria CACHE:
-

El tamao del banco de memoria cache debe ser:


Suficientemente grande para que el procesador resuelva la mayor cantidad
posible de bsquedas de cdigo y datos en esta memoria asegurando una
alta performance
Suficientemente pequea para no afectar el consumo ni el costo del
sistema.
Se dice que se logra un hit cuando se accede a un tem (dato o cdigo) y ste se
encuentra en la memoria cache.
En caso contrario, se dice que el resultado del acceso es un miss.
Se espera un hit rate lo ms alto posible

Localidad:

La localidad es una caracterstica de los programas y de sus datos


El cdigo suele tener mucha localidad espacial y/o temporal.
Estudios sealan que un programa est el 90% de su tiempo de
ejecucin en slo 10% del cdigo.
Los datos que referencia dicho cdigo.....depende del programa

Es el principio que hace que la jerarqua de memoria sea una buena idea

Si un dato es referenciado:
Localidad temporal: volver a ser referenciado pronto
Localidad espacial: datos cercanos al actual sern inmediatamente
referenciados.
Localidad secuencial: Las instrucciones suelen accederse en
secuencia
Cache:
Mantiene las palabras (datos o instrucciones) de memoria de mayor uso
Reduce tiempo de acceso promedio. Controlador adivina aplicando localidad
- Caractersticas:
Alta velocidad
Capacidad pequea
Fsicamente: SRAM (varias veces ms rpidas que DRAM)
-

Cuando la CPU lee una posicin de memoria, primero verifica si esta memoria
se encuentra en la memoria cach.
Si se encuentra en la cach (hit) la CPU la lee directamente de ella.
Si no est en la memoria (miss) cach la CPU la busca en la memoria principal, y
la copia en la cach para futuras lecturas.

DISCOS DUROS:
Un disco duro es un dispositivo en el que el almacenamiento de la informacin es
permanente (almacenamiento no voltil), es decir conserva la informacin que le ha
sido almacenada de forma correcta aun con la perdida de energa.

No necesita de un aporte constante de energa para conservar la informacin (al


contrario que con otros tipos de almacenamiento como las memorias RAM)
Su funcionamiento se basa en el sistema de grabacin magntica, por el cual algunos
materiales son capaces de almacenar determinados estados magnticos (impuestos
desde el exterior).
Caractersticas:
-

Tiempo medio de acceso: Tiempo medio que tarda la aguja en situarse en la


pista y el sector deseado; es la suma del Tiempo medio de bsqueda (situarse
en la pista) y la Latencia media (situarse en el sector).
Tiempo medio de bsqueda: Tiempo medio que tarda la aguja en situarse en la
pista deseada; es la mitad del tiempo empleado por la aguja en ir desde la pista
ms perifrica hasta la ms central del disco.
Latencia media: Tiempo medio que tarda la aguja en situarse en el sector
deseado; es la mitad del tiempo empleado en una rotacin completa del disco.
Velocidad de rotacin: Revoluciones por minuto de los platos. A mayor
velocidad de rotacin, menor latencia media.
Tasa de transferencia: Velocidad a la que puede transferir la informacin a la
computadora una vez la aguja est situada en la pista y sector correctos. Puede
ser velocidad sostenida o de pico.

Partes de un Disco Duro:


-

Carcasa metlica: Protege la mecnica del disco de agentes externos como


polvo, humedad, temperatura, etc.
Cabezal de lectura/escritura: La parte del dispositivo que se encarga de leer y
escribir los datos en el disco.
Discos: Normalmente, un disco duro est compuesto a su vez por varios discos,
o platos de material magntico, situados unos encima de otros. Las dos caras
de un disco pueden usarse para guardarse informacin, y cada una tiene su
propio cabezal
Conectores:
En el ms alargado la izquierda se enchufa una faja IDE, a travs de la cual se
hace el intercambio de datos entreel disco y el PC.
En el otro extremo se conecta el cable de alimentacin, que suministra al
dispositivo la electricidad que necesita para funcionar.
Pistas
Cilindros
Sectores

Como funciona:
Veamos cules son los mecanismos que permiten a la unidad acceder a la totalidad de
los datos almacenados en los platos.
En primer lugar, cada superficie magntica tiene asignado uno de los cabezales de
lectura/escritura de la unidad. Por tanto, habr tantos cabezales como caras tenga el
disco duro y, como cada plato tiene dos caras, este nmero equivale al doble de platos
de la pila.
El conjunto de cabezales se desplazan linealmente desde el exterior hasta el interior de
la pila de platos mediante un brazo mecnico que los transporta.
Para que los cabezales tengan acceso a la totalidad de los datos, es necesario que la
pila de discos gire. Este giro se realiza a velocidad constante y no cesa mientras est
encendido el ordenador. Con las unidades de CD-ROM ocurre algo similar, sin embargo
en este caso la velocidad de giro no es constante y depende de la distancia al centro
del dato que se est leyendo.
TECLADO Y PANTALLA:
PANTALLA:
La Pantalla o el monitor de computadora es el principal dispositivo de salida (interfaz),
que muestra datos o informacin al usuario.
Tambin puede considerarse un perifrico de Entrada/Salida si el monitor tiene
pantalla tctil o multitctil.
Tamao: Se calcula al medir la diagonal de la pantalla y se expresa en pulgadas (una
pulgada equivale aproximadamente a 2,54 cm). Tenga cuidado de no confundir la
definicin de una pantalla con su tamao. Despus de todo, una pantalla de un
tamao determinado puede mostrar diferentes definiciones, aunque en general las
pantallas que son ms grandes en tamao poseen una definicin ms alta.
Resolucin: Determina el nmero de pxeles por unidad de superficie (expresados en
pulgadas lineales). Se abrevia DPI que significa Puntos por pulgada. Una resolucin de
300 dpi significa 300 columnas y 300 filas de pxeles por pulgada cuadrada, lo cual
significa que hay 90.000 pxeles por pulgada cuadrada. En comparacin, una resolucin
de 72 dpi significa que un pxel es 1"/72 (una pulgada dividida por 72) o 0,353 mm, lo
que corresponde a una pica (una unidad tipogrfica).
Ejemplos
1.
Full HD 1920 x 1080 a 60 Hz
2.
Monitor GATEWAY Widescreen Ultra-Slim LED 1600 x 900
Tiempo de respuesta: Tambin conocido como latencia. Es el tiempo que le cuesta a
un pxel pasar de activo (blanco) a inactivo (negro) y despus a activo de nuevo.
Ejemplos

1.
20 "Gateway HX1953L DVI Widescreen Ultra-Slim LED Monitor LCD su tiempo
de respuesta es de 5ms
2.
Monitor Dell 20 LED pulgadas IN2030 DVI+ VGA+ Negro
Por lo general los nuevos monitores el tiempo de respuesta es 5 ms
TECLADO:
Se trata de un dispositivo que integra una gran cantidad de teclas, semejantes a las de
una mquina de escribir mecnica. Tambin tiene una serie de botones extras que
realizan otras funciones especficas. A travs del tiempo, este dispositivo es de los que
menos modificaciones han sufrido, ya que por excelencia es el perifrico de entrada
ms comn de las computadoras y de los ms indispensables.
Teclados inalmbricos Wireless / BlueTooth:
Los teclados inalmbricos tienen la caracterstica de no recibir alimentacin elctrica
desde algn puerto, sino que tienen una batera encargada de ello, adems dependen
de un accesorio denominado receptor (el cul se conecta al puerto USB de la
computadora), que recibe la seal desde el teclado y la transmite al equipo. Como
todo accesorio inalmbrico, tiene un radio mximo de alcance, adems depende el
estndar que se este utilizando para ello.
Tecnologa de pulsacin:
- Virtuales: Bsicamente las teclas no son fsicas, sino que se trata de una imagen
de teclas proyectadas sobre una superficie. Un sensor determina las "teclas"
que el usuario toca.

Xvkbd (Virtual Keyboard For X Windows)

Gok

Dasher
- Contacto Membrana: Se trata de un par de contactos separados entre s por
una distancia mnima (espesor de una hoja de papel), los cules hacen contacto
al oprimir la tecla. La tecla regresa a su estado original por medio de una
membrana plstica que tienen una media burbuja que empuja la tecla hacia
arriba.
- Mecnico-Capacitivo: Utilizan un resorte metlico, el cul al ser oprimido por la
tecla, genera un contacto entre dos contactos. La tecla regresa a su estado
original gracias a este resorte.

RENDIMIENTO EN COMPUTADORES
Se define rendimiento de un sistema como la capacidad que tiene dicho sistema para
realizar un trabajo en un determinado tiempo. Es inversamente proporcional al tiempo, es
decir, cuanto mayor sea el tiempo que necesite, menor ser el rendimiento.
Los computadores ejecutan las instrucciones que componen los programas, por lo
tanto el rendimiento de un computador est relacionado con el tiempo que tarda en
ejecutar los programas. De esto se deduce que el tiempo es la medida del rendimiento
de un computador.
El rendimiento del procesador depende de los siguientes parmetros:
1. Frecuencia de la CPU (fCPU) : es el nmero de ciclos por segundo al que trabaja el
procesador o CPU. No confundir la frecuencia de la CPU con la frecuencia del sistema,
el bus del sistema trabaja a menor frecuencia que la CPU.

2. Periodo de la CPU (TCPU): es el tiempo que dura un ciclo y es la inversa de la


frecuencia de la CPU.

3. Ciclos por instruccin (CPI): las instrucciones se descomponen en


microinstrucciones, que son operaciones bsicas que se hacen en un ciclo de reloj. En
un programa se llama CPI al promedio de microinstrucciones que tienen las
instrucciones del programa, es decir, los ciclos de reloj que se tarda de media en
ejecutar una instruccin.

Como anteriormente hemos comentado, el rendimiento de un procesador para un


programa concreto es un factor inversamente proporcional al tiempo que tarda en
ejecutar dicho programa.

El tiempo de programa depende a su vez del nmero de instrucciones del programa y


del tiempo que se tarda en ejecutar cada instruccin.

El tiempo que
tarda en
ejecutarse cada instruccin depende del nmero de microinstrucciones o ciclos en los
que se descompone. Cada microinstruccin tarda distintos ciclos de reloj en
ejecutarse, por lo que se hace un promedio ponderado de ciclos de instruccin.

EJEMPLO 1
Dadas las caractersticas de un programa calcular el tiempo que tarda en ejecutarse el
programa y su rendimiento. Se sabe que la CPU trabaja a 1GHz. El programa se
compone de 19 instrucciones de tres tipos: A, B y C y cada tipo de instruccin tiene un
nmero de microinstrucciones diferente segn indica la tabla:

TIEMPO DE PROGRAMA:

COMPARACIN DEL RENDIMIENTO


El objetivo principal de los compradores, diseadores y otros usuarios de
computadores, es conseguir el mayor rendimiento posible con el menor coste. El
rendimiento, por tanto, ofrece una medida cuantitativa que permite comparar unos
computadores frente a otros y decidir cual nos aporta mayores ventajas. Cuando
comparemos 2 mquinas hablaremos de aceleracin:
1.- Aceleracin del rendimiento: Es la relacin que existe entre el rendimiento del
computador A y el rendimiento del computador B. Indica que el computador A es un
n% mejor que el B.

2.- Aceleracin del tiempo: Es la relacin entre el tiempo que tarda el computador A
en ejecutar un programa y el tiempo que tarda el computador B, y es inversamente
proporcional al rendimiento.

EJEMPLO 2:

EJEMPLO 3:
Tenemos un PentiumIV a 2GHz y ejecuta un programa de 1000 instrucciones, segn la
siguiente tabla calcular el rendimiento. Para aumentar el rendimiento se aade
posteriormente una cach que ahorra 1 ciclo en accesos di el dato est en la cach y si
no est dura lo mismo. El porcentaje de acierto es del 90%. Calcular el rendimiento y la
aceleracin del rendimiento con respecto del anterior sin cach.

Hemos conseguido un aumento en el rendimiento de un 1% al incorporar cach.


MIPS
Los MIPS son los millones de instrucciones por segundo que ejecuta un procesador
para un programa determinado.

La ventaja de esta unidad de medida es su fcil comprensin ya que un mayor nmero


de MIPS indicar una mayor velocidad de la mquina. Sin embargo, no es una medida
buena ya que puede producir resultados errneos, un mismo programa en un mismo
computador puede dar resultados diferentes segn el programador o el repertorio de
instrucciones utilizadas, adems los MIPS pueden variar inversamente al rendimiento.
EJEMPLO 4:
Se dispone de una mquina con dos clases de instrucciones, la instruccin 1 tendr un
CPI de 3 y la instruccin 2 un CPI de 2. Al medir el cdigo para el mismo programa para
dos compiladores diferentes se obtienen los siguientes datos.

Se supone que la frecuencia de reloj de la mquina es de 200MHz. Qu secuencia de


cdigo se ejecuta con ms rapidez de acuerdo con los MIPS?. Realizar lo mismo de
acuerdo al tiempo de ejecucin. Explicar los resultados.
Para calcular los MIPS utilizamos la ecuacin:

Lo que nos lleva a concluir que el compilador B se ejecuta ms rpido que el


compilador A
Calcularemos ahora el tiempo de ejecucin y para ello utilizaremos la frmula:

Por tanto, el compilador A es claramente ms rpido lo cual contradice lo que


habamos observado con los MIPS.
NO SE PUEDE COMPARAR TIEMPO EN DOS PROGRAMAS SI TIENEN DIFERENTE
NUMERO DE INSTRUCCIONES

BENCHMARKS
Las medidas de rendimiento vistas hasta ahora no son vlidas hoy en da dado que
algunas como los MIPS tienden a dar resultados errneos y a que los computadores
actuales tienen una elevada velocidad. La mejor y mas fiable forma de calcular el
rendimiento es medir el tiempo que los diversos computadores tardan en ejecutar los
programas que realmente el usuario va a utilizar posteriormente. Ese ser el mejor
rendimiento para ese usuario, pero no para todos los usuarios, ya que el rendimiento
es un valor relativo de acuerdo con la aplicacin que se va a hacer.
El rendimiento de una estacin de trabajo se mide analizando una serie de
componentes fsicos que determinan el rendimiento completo del sistema. A la hora
de determinar el rendimiento global de un sistema, tambin hay que evaluar el
sistema operativo, los equipos lgicos de red, los compiladores y las libreras grficas,
etc.
Para la evaluacin del rendimiento de los sistemas se utilizan pruebas de rendimiento
o benchmarks, que son programas modelo que efecta la industria para comparar
factores de rendimiento y relaciones rendimiento / precio de los diferentes modelos
de computadores. No obstante, estas evaluaciones no son siempre directamente
comparables, y en ocasiones ofrecen poca informacin, porque las configuraciones con
las que se realizan las evaluaciones no son expuestas con claridad.
Hay multitud de programas de prueba o benchmarks. Estos programas se dividen
principalmente en 4 grupos, los tres primeros tipos han quedado en desuso.

BENCHMARK SINTTICOS
BENCHMARKS REDUCIDOS
BENCHMARK KERNEL O DE NCLEO
PROGRAMAS REALES

Вам также может понравиться