SlideShare a Scribd company logo
1 of 39
Organización de la
unidad central de
procesamiento (CPU)
Organización Computacional
TC 1004
Unidad Central de Proceso (CPU)
 Función: ejecutar secuencias de instrucciones.
 Buscar instrucciones (memoria).
 Interpretar instrucciones.
 Buscar datos (memoria o E/S).
 Procesar datos.
 Escribir datos (memoria o E/S).
 Programación computadora.
 Preparar secuencia de instrucciones (conjunto de
instrucciones).
 Almacenar datos (memoria).
 Instruir al CPU para que inicie la ejecución.
Unidad Arimética y Lógica (ALU)
 Realiza cálculos:
 Aritméticos.
 Suma, Resta, Multiplicación y División.
 Lógicos (comparaciones).
 AND, OR, NOT.
 Utiliza banderas (signo, overflow, etc.).
 Unidad de Control, Registros y E/S llevan datos.
Unidad de Control (UC)
 Ejecución de una instrucción = conjunto de ciclos:
 Captación (fetch): obtener instrucción de la memoria.
 Indirecto: obtener operandos.
 Ejecución.
 Interrupción: instrucciones que requieren atención urgente.
 Ciclos compuestos de microoperaciones.
 Utiliza los registros de Control y Estado.
Registros
 Almacenamiento temporal interno del CPU.
 Acceso de alta velocidad.
 Localización de la última instrucción.
 Almacenar instrucciones y datos mientras se ejecuta
alguna instrucción.
 Dos tipos:
 Disponibles al usuario.
 Control y Estado (UC).
 Disponibles al usuario:
 Propósito General.
 AX, BX, CX, DX (H/L).
 Registros de Datos.
 Registros de Dirección.
 Propósito general.
 SI y DI.
 Direccionamiento.
 SP, BP, CS, DS, ES, SS, IP.
 Banderas (códigos de condición).
 Control: control CPU.
 Estado: estado de resultados de operaciones
aritméticas y lógicas.
 Control y Estado.
 Contador de Programa (PC): dirección de la instrucción a ser
buscada (siguiente).
 Registro de Instrucción (IR): instrucción reciente.
 Registro de Dirección de Memoria (MAR): dirección de la
localidad de memoria.
 Registro de Dato de Memoria (MDR): palabra de memoria
mas reciente.
 Palabra de Estado de Programa (PSW): códigos de
condición e información de estado.
 Signo, cero, acarreo, igual, overflow, etc.
Instrucciones de
Máquina
Instrucciones de Máquina
 Determinan la operación del CPU.
 Existe una gran variedad que varian en función: conjunto de
instrucciones.
 Elementos de una instrucción de máquina:
 Cada instrucción contiene la información requerida por el CPU
para ser ejecutada.
1. Código de operación: Ej: ADD, SUB, MOV.
2. Referencia de Operando Fuente: Dirección de los operandos
requeridos por la instrucción.
3. Referencia de Operando Resultante: Dir. guardar resultado.
4. Referencia de Siguiente Instrucción.: Dir. sig. instrucción.
 Representación de Instrucciones.
 Secuencia de bits.
 Mnemonicos.
 Representación simbólica de una instrucción de máquina.
 Abreviaciones que indican la operación.
 Ej: ADD, JMP, LOAD.
 Dividida en campos.
 La estructura de una instrucción es conocida como: formato
de instrucción.
Op. Code Operand Ref Operand Ref
 Diseño del Conjunto de Instrucciones.
 Complejo y Debatido.
1. Tipos de datos:
1. Direcciones.
2. Números.
3. Caracteres.
4. Lógicos.
2. Formato de la instrucción:
1. Longitud, # campos, tipo de direccionamiento.
3. Registros:
1. No. de registros del CPU a ser usados.
4. Direccionamiento:
1. Modo(s) de especificar la dirección de un operando.
5. Repertorio de operaciones.
1. Transferencia de datos.
2. Aritméticas.
3. Manipulación de bits (lógica).
4. Control de programa.
5. Manipulación de cadenas (strings).
6. Control del CPU.
5. Número de direcciones de las instrucciones:
– Cero – HLT.
– Una – DIV BX
– Dos – MOV AL, 1
 Instrucciones de Transferencia de Datos
 MOV Mover
 PUSH, POP Operaciones en Stack
 XCHG Intercambiar
 IN, OUT Puertos entrada/salida
MOV destino, fuente
 Transfiere datos entre registros y memoria.
 Destino: registro o localidad de memoria.
 Fuente: registro, dirección memoria o número.
 MOV AX, 10
 MOV BX, DX
 Instrucciones Aritméticas
 ADD / SUB Suma / Resta
 INC / DEC Incremento / Decremento
 NEG Complemento a dos
 MUL / DIV Multiplicación / División
ADD / SUB Op1, Op2
 Suma / resta del Op1 y el Op2.
 El resultado es almacenado en el Op1.
 MOV AX, 1
 MOV BX, 2
 MOV CX, 10
 ADD AX, BX
 SUB CX, 5
INC / DEC Op
 Incremento / Decremento de Op en una unidad.
 Resultado almacenado en Op.
 MOV AX, 8
 INC AX
 MOV BX, AX
 DEC BX
MUL / DIV Op
 Multiplicación / División de AX por / entre Op.
 Resultado almacenado en AX.
 MOV AX, 5
 MOV BX, 4
 MUL BX
 DIV 3
 Instrucciones Lógicas
 AND AND
 OR OR Inclusivo
 NOT Complementar (a uno)
NOT Op
 Complemento a uno de Op.
 Resultado almacenado en Op.
AND / OR Op1, Op2
 AND / OR del Op1 con el Op2.
 Resultado almacenado en Op1.
 MOV AL, 5
 AND AL, FH
 OR AL, 0H
 NOT AL
 Instrucciones de Manipulación de
Cadenas
 MOVS Mover cadenas
 CMPS Comparar cadenas
 SCAS Recorrer cadena
 LODS Leer cadena
 STOS Guardar cadena
OF DF IF TF SF ZF AF PF CF
OF – Overflow Flag
DF – Direction Flag
IF – Interruption Flag
TF – Trap Flag
SF – Sign Flag
ZF – Zero Flag
AF – Aux. Carry Flag
PF – Parity Flag
CF – Carry Flag
Registro de Banderas de 16 bits
Procesador 8088
 Instrucciones de Control de Programa
 CALL Llamar a una subrutina
 RET Regresar de una subrutina
 JMP Salto
 JZ, JNZ Saltos condicionales
 LOOP Ciclo
 LOOPNE Ciclos condicionales
 INT Interrupción
JMP etiqueta
 Provoca cambio en el flujo del programa sin considerar
condición alguna.
 La etiqueta especifica a partir de donde se continua la
ejecución del programa.
JZ / JNZ etiqueta
 Transfiere el control de ejecución si y solo si la
bandera “Zero Flag (ZF)” se encuentra prendida /
apagada..
 La etiqueta especifica a partir de donde se
continua la ejecución del programa.
Si AX = 0 entonces AX = AX + 1
de otra forma AX = AX + 2
ADD AX, 0
JNZ SumaDos
INC AX
JMP Fin
ADD AX, 2
...
SumaDos:
Fin:
LOOP etiqueta
 Utilizada cuando se necesita ejecutar un conjunto
de instrucciones varias veces.
 Brinca a la etiqueta siempre y cuando el valor de
CX sea diferente de cero.
 En cada LOOP: CX = CX – 1, si CX <> 0 salta.
Ej: Realice un programa que sume los numeros enteros
del 1 al 20. Almacene el resultado en DX.
MOV CX, 20
MOV AX, 0
MOV BX, 1
ADD AX, BX
INC BX
LOOP Suma
MOV DX, AX
Suma:
 Instrucciones de Control del Procesador
 CLC Limpiar bandera CF
 CLD Limpiar bandera DF
 CLI Limpiar Bandera IF
 CMC Complementar CF
 STC Prender CF
 STD Prender DF
 STI Prender IF
 HLT Detener el procesador (Alto)
 Realice un programa que dado un número K, obtenga
su número de Fibonacci. Almacene el resultado en DX.
 La sucesión de Fibonacci se define como la suma de
los dos últimos elementos de una serie que empieza
con los números 1, 1.
 Ej: 1, 1, 2, 3, 5, 8, 13, ...
 Formalmente se define de la siguiente manera:
F(1) = 1
F(2) = 1
F(K) = F(K-1) + F(K-2)
Ej: F(5) = F(4) + F(3) = 3 + 2 = 5
F(4) = F(3) + F(2) = 2 + 1 = 3
F(3) = F(2) + F(1) = 1 + 1 = 2
MOV CX, K
SUB CX, 1
JZ Uno
SUB CX, 1
JNZ Otro
MOV DX, 1
JMP Fin
MOV AX, 1
MOV BX, 1
MOV DX, AX
ADD AX, BX
MOV BX, DX
LOOP Serie
MOV DX, AX
...
Uno:
Otro:
Serie:
Fin:
SHL Op1, Op2
 Corrimiento lógico a la izquierda
 Recorre los bits de Op1 un número Op2 de
posiciones a la izquierda.
 En cada corrimiento:
 Agrega en el bit menos significativo un cero.
 El bit más significativo pasa a la bandera CF.
MOV AX, 11001100B
SHL AX, 1
 AX = 10011000, CF = 1
 Realice un programa que utilizando la instrucción
SHL, multiplique por dos un número N, K veces.
 Las entradas al programa serán:
 el número N a multiplicar.
 el numero de veces K que se desea realizar la multiplicación.
 Pruebe su programa con N = 2, K = 3 (Resultado = 16).
Modos de
Direccionamiento
Modos de Direccionamiento
 Permiten interpretar los bits de una dirección para encontrar el
valor de un operando.
 Modos:
 Implícito
 Inmediato
 Directo
 Indirecto
 Registro
 Registro Indirecto
 Desplazamiento
 No todas las computadoras utilizan todos los modos.
 Direccionamiento Implícito.
 No necesita recibir la dirección del operando,
esta se encuentra implícita en la operación.
 Ej.:
MUL BX
 Ventaja:
 Acceso rápido.
 Desventaja:
 Conocer perfectamente la operación.
 Direccionamiento Inmediato.
 Recibe el operando y no la dirección de este.
 Ej.:
MOV AX, 4
 Ventaja: no requiere memoria extra para traer
el operando.
 Desventaja: Solo puede utilizar constantes.
 Direccionamiento Directo.
 Recibe la dirección en memoria del operando.
 Ej.:
MOV AX, [10]
 Ventaja:
 Acceso rápido para variables globales.
 Desventajas:
 La instrucción siempre accesará la misma localidad de
memoria.
 Solo puede cambiar el valor del operando pero no su
dirección.
 Direccionamiento Indirecto.
 Recibe la dirección de la palabra en memoria
(apuntador) que contiene la dirección del operando.
 Ej.:
MOV AX, [[10]]
 Ventaja:
 La dirección en memoria puede apuntar a distintas
localidades de memoria.
 Desventaja:
 La ejecución de la instrucción requiere de dos
referencias a memoria para traer el operando (una
para obtener su dirección y la otra para obtener su
valor).
 Direccionamiento de Registro (directo).
 Similar al direccionamiento directo.
 Recibe un registro en lugar de una dirección en memoria.
 Ej.:
MOV AX, BX
 Ventaja:
 No necesita referencias a memoria.
 Desventaja:
 Número limitado de registros en el CPU -> usar este
direccionamiento para operandos muy utilizados.
 Este es el modo de direccionamiento más común.
 Direccionamiento de Registro Indirecto.
 Similar al direccionamiento indirecto.
 Recibe un registro que contiene la dirección (apuntador) en
memoria del operando.
 Ej.:
MOV AX, [BX]
 Ventaja:
 La dirección en el registro puede apuntar a distintas localidades
de memoria (misma indirecta).
 Utiliza una referencia menos a memoria en comparción con el
direccionamiento inderecto.
 Utilizado para apuntadores de uso frecuente.
 Direccionamiento de Desplazamiento.
 Combina los modos de direccionamiento directo y de
registro indirecto.
 Se requiere que la dirección del operando sea calculada
en base a una dirección fija más otra dirección de
desplazamiento.
Dirección = Fija + Desplazamiento.
 Tanto la dirección fija como la de desplazamiento pueden
ser referenciadas de manera directa o indirecta.
 La dirección fija puede estar ímplicita en la instrucción.
1. Relativo.
2. Indexado.
3. Base.
 Relativo.
 La dirección fija es el registro PC y se encuentra
implícita en la instrucción.
 Ej.:
MOVPC AX, BX (BX = 5, PC = 10)
 Indexado.
 La dirección fija referencia a la memoria.
 El desplazamiento contiene un número positivo para
calcular la dirección del operando.
 Ventaja: Eficiente para operaciones ciclicas.
 Desventaja: dos accesos a memoria.
 Dos tipos principales:
 Preindexado.
 Postindexado.
 Preindexado (indexamiento previo)
 La dirección fija es sumada al desplazamiento.
 El resultado es usado como una dirección en
memoria donde se encuentra la dirección del
operando.
 Ej.:
MOV AX, [BX,CX]
 Postindexado (indexamiento posterior)
 La dirección fija contiene la dirección en memoria
que a su vez contiene la dirección a ser utilizada
para obtener el operando.
 A la dirección obtenida a partir de la dirección fija
se le suma el desplazamiento para obtener la
dirección del operando.
 Ej.:
MOV AX, [BX]CX

More Related Content

What's hot

Lenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorLenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorsmfch
 
Registro de estado finalizado
Registro de estado finalizadoRegistro de estado finalizado
Registro de estado finalizadoDali Yulian Glez
 
Procesador
ProcesadorProcesador
ProcesadorAndres
 
Sintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladorSintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladornaye torres
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!romo91
 
Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mauricio Velasquez
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en cdemata
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigEfrain Zrng
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assemblerangel
 

What's hot (17)

Lenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorLenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesador
 
Esamblador8086
Esamblador8086Esamblador8086
Esamblador8086
 
Registro de estado finalizado
Registro de estado finalizadoRegistro de estado finalizado
Registro de estado finalizado
 
Procesador
ProcesadorProcesador
Procesador
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Sintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensambladorSintaxis del lenguaje ensamblador
Sintaxis del lenguaje ensamblador
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!
 
Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086
 
Lenguaje de emsanble
Lenguaje de emsanbleLenguaje de emsanble
Lenguaje de emsanble
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransig
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Registros del cpu
Registros del cpuRegistros del cpu
Registros del cpu
 

Similar to Organizacion-de-la-unidad-central-de-procesamiento

Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientosaaronastorga4
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detallePTA Records
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalleLupiita Paniagua
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalledsolana
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Arranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con AssemblerArranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con AssemblerPedro Contreras Flores
 
Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Carlos Guillén
 
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorUnidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorCristhixn Leon
 
MSX88 simulador assembly programación arquitectura de software.ppt
MSX88 simulador assembly programación arquitectura de software.pptMSX88 simulador assembly programación arquitectura de software.ppt
MSX88 simulador assembly programación arquitectura de software.pptmatias387621
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAMODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAgbermeo
 

Similar to Organizacion-de-la-unidad-central-de-procesamiento (20)

asm_mododir2.pdf
asm_mododir2.pdfasm_mododir2.pdf
asm_mododir2.pdf
 
Asm mododir2
Asm mododir2Asm mododir2
Asm mododir2
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Multiciclo
MulticicloMulticiclo
Multiciclo
 
Arranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con AssemblerArranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con Assembler
 
Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)
 
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorUnidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
MSX88 simulador assembly programación arquitectura de software.ppt
MSX88 simulador assembly programación arquitectura de software.pptMSX88 simulador assembly programación arquitectura de software.ppt
MSX88 simulador assembly programación arquitectura de software.ppt
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMAMODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
MODOS DE DIRECIONAMIENTO DE LA MEMORIA DE PROGRAMA
 

Organizacion-de-la-unidad-central-de-procesamiento

  • 1. Organización de la unidad central de procesamiento (CPU) Organización Computacional TC 1004
  • 2. Unidad Central de Proceso (CPU)
  • 3.  Función: ejecutar secuencias de instrucciones.  Buscar instrucciones (memoria).  Interpretar instrucciones.  Buscar datos (memoria o E/S).  Procesar datos.  Escribir datos (memoria o E/S).  Programación computadora.  Preparar secuencia de instrucciones (conjunto de instrucciones).  Almacenar datos (memoria).  Instruir al CPU para que inicie la ejecución.
  • 4.
  • 5. Unidad Arimética y Lógica (ALU)  Realiza cálculos:  Aritméticos.  Suma, Resta, Multiplicación y División.  Lógicos (comparaciones).  AND, OR, NOT.  Utiliza banderas (signo, overflow, etc.).  Unidad de Control, Registros y E/S llevan datos.
  • 6. Unidad de Control (UC)  Ejecución de una instrucción = conjunto de ciclos:  Captación (fetch): obtener instrucción de la memoria.  Indirecto: obtener operandos.  Ejecución.  Interrupción: instrucciones que requieren atención urgente.  Ciclos compuestos de microoperaciones.  Utiliza los registros de Control y Estado.
  • 7. Registros  Almacenamiento temporal interno del CPU.  Acceso de alta velocidad.  Localización de la última instrucción.  Almacenar instrucciones y datos mientras se ejecuta alguna instrucción.  Dos tipos:  Disponibles al usuario.  Control y Estado (UC).
  • 8.  Disponibles al usuario:  Propósito General.  AX, BX, CX, DX (H/L).  Registros de Datos.  Registros de Dirección.  Propósito general.  SI y DI.  Direccionamiento.  SP, BP, CS, DS, ES, SS, IP.  Banderas (códigos de condición).  Control: control CPU.  Estado: estado de resultados de operaciones aritméticas y lógicas.
  • 9.  Control y Estado.  Contador de Programa (PC): dirección de la instrucción a ser buscada (siguiente).  Registro de Instrucción (IR): instrucción reciente.  Registro de Dirección de Memoria (MAR): dirección de la localidad de memoria.  Registro de Dato de Memoria (MDR): palabra de memoria mas reciente.  Palabra de Estado de Programa (PSW): códigos de condición e información de estado.  Signo, cero, acarreo, igual, overflow, etc.
  • 11. Instrucciones de Máquina  Determinan la operación del CPU.  Existe una gran variedad que varian en función: conjunto de instrucciones.  Elementos de una instrucción de máquina:  Cada instrucción contiene la información requerida por el CPU para ser ejecutada. 1. Código de operación: Ej: ADD, SUB, MOV. 2. Referencia de Operando Fuente: Dirección de los operandos requeridos por la instrucción. 3. Referencia de Operando Resultante: Dir. guardar resultado. 4. Referencia de Siguiente Instrucción.: Dir. sig. instrucción.
  • 12.  Representación de Instrucciones.  Secuencia de bits.  Mnemonicos.  Representación simbólica de una instrucción de máquina.  Abreviaciones que indican la operación.  Ej: ADD, JMP, LOAD.  Dividida en campos.  La estructura de una instrucción es conocida como: formato de instrucción. Op. Code Operand Ref Operand Ref
  • 13.  Diseño del Conjunto de Instrucciones.  Complejo y Debatido. 1. Tipos de datos: 1. Direcciones. 2. Números. 3. Caracteres. 4. Lógicos. 2. Formato de la instrucción: 1. Longitud, # campos, tipo de direccionamiento. 3. Registros: 1. No. de registros del CPU a ser usados. 4. Direccionamiento: 1. Modo(s) de especificar la dirección de un operando.
  • 14. 5. Repertorio de operaciones. 1. Transferencia de datos. 2. Aritméticas. 3. Manipulación de bits (lógica). 4. Control de programa. 5. Manipulación de cadenas (strings). 6. Control del CPU. 5. Número de direcciones de las instrucciones: – Cero – HLT. – Una – DIV BX – Dos – MOV AL, 1
  • 15.  Instrucciones de Transferencia de Datos  MOV Mover  PUSH, POP Operaciones en Stack  XCHG Intercambiar  IN, OUT Puertos entrada/salida MOV destino, fuente  Transfiere datos entre registros y memoria.  Destino: registro o localidad de memoria.  Fuente: registro, dirección memoria o número.  MOV AX, 10  MOV BX, DX
  • 16.  Instrucciones Aritméticas  ADD / SUB Suma / Resta  INC / DEC Incremento / Decremento  NEG Complemento a dos  MUL / DIV Multiplicación / División ADD / SUB Op1, Op2  Suma / resta del Op1 y el Op2.  El resultado es almacenado en el Op1.  MOV AX, 1  MOV BX, 2  MOV CX, 10  ADD AX, BX  SUB CX, 5
  • 17. INC / DEC Op  Incremento / Decremento de Op en una unidad.  Resultado almacenado en Op.  MOV AX, 8  INC AX  MOV BX, AX  DEC BX MUL / DIV Op  Multiplicación / División de AX por / entre Op.  Resultado almacenado en AX.  MOV AX, 5  MOV BX, 4  MUL BX  DIV 3
  • 18.  Instrucciones Lógicas  AND AND  OR OR Inclusivo  NOT Complementar (a uno) NOT Op  Complemento a uno de Op.  Resultado almacenado en Op. AND / OR Op1, Op2  AND / OR del Op1 con el Op2.  Resultado almacenado en Op1.  MOV AL, 5  AND AL, FH  OR AL, 0H  NOT AL
  • 19.  Instrucciones de Manipulación de Cadenas  MOVS Mover cadenas  CMPS Comparar cadenas  SCAS Recorrer cadena  LODS Leer cadena  STOS Guardar cadena
  • 20. OF DF IF TF SF ZF AF PF CF OF – Overflow Flag DF – Direction Flag IF – Interruption Flag TF – Trap Flag SF – Sign Flag ZF – Zero Flag AF – Aux. Carry Flag PF – Parity Flag CF – Carry Flag Registro de Banderas de 16 bits Procesador 8088
  • 21.  Instrucciones de Control de Programa  CALL Llamar a una subrutina  RET Regresar de una subrutina  JMP Salto  JZ, JNZ Saltos condicionales  LOOP Ciclo  LOOPNE Ciclos condicionales  INT Interrupción JMP etiqueta  Provoca cambio en el flujo del programa sin considerar condición alguna.  La etiqueta especifica a partir de donde se continua la ejecución del programa.
  • 22. JZ / JNZ etiqueta  Transfiere el control de ejecución si y solo si la bandera “Zero Flag (ZF)” se encuentra prendida / apagada..  La etiqueta especifica a partir de donde se continua la ejecución del programa. Si AX = 0 entonces AX = AX + 1 de otra forma AX = AX + 2 ADD AX, 0 JNZ SumaDos INC AX JMP Fin ADD AX, 2 ... SumaDos: Fin:
  • 23. LOOP etiqueta  Utilizada cuando se necesita ejecutar un conjunto de instrucciones varias veces.  Brinca a la etiqueta siempre y cuando el valor de CX sea diferente de cero.  En cada LOOP: CX = CX – 1, si CX <> 0 salta. Ej: Realice un programa que sume los numeros enteros del 1 al 20. Almacene el resultado en DX. MOV CX, 20 MOV AX, 0 MOV BX, 1 ADD AX, BX INC BX LOOP Suma MOV DX, AX Suma:
  • 24.  Instrucciones de Control del Procesador  CLC Limpiar bandera CF  CLD Limpiar bandera DF  CLI Limpiar Bandera IF  CMC Complementar CF  STC Prender CF  STD Prender DF  STI Prender IF  HLT Detener el procesador (Alto)
  • 25.  Realice un programa que dado un número K, obtenga su número de Fibonacci. Almacene el resultado en DX.  La sucesión de Fibonacci se define como la suma de los dos últimos elementos de una serie que empieza con los números 1, 1.  Ej: 1, 1, 2, 3, 5, 8, 13, ...  Formalmente se define de la siguiente manera: F(1) = 1 F(2) = 1 F(K) = F(K-1) + F(K-2) Ej: F(5) = F(4) + F(3) = 3 + 2 = 5 F(4) = F(3) + F(2) = 2 + 1 = 3 F(3) = F(2) + F(1) = 1 + 1 = 2
  • 26. MOV CX, K SUB CX, 1 JZ Uno SUB CX, 1 JNZ Otro MOV DX, 1 JMP Fin MOV AX, 1 MOV BX, 1 MOV DX, AX ADD AX, BX MOV BX, DX LOOP Serie MOV DX, AX ... Uno: Otro: Serie: Fin:
  • 27. SHL Op1, Op2  Corrimiento lógico a la izquierda  Recorre los bits de Op1 un número Op2 de posiciones a la izquierda.  En cada corrimiento:  Agrega en el bit menos significativo un cero.  El bit más significativo pasa a la bandera CF. MOV AX, 11001100B SHL AX, 1  AX = 10011000, CF = 1
  • 28.  Realice un programa que utilizando la instrucción SHL, multiplique por dos un número N, K veces.  Las entradas al programa serán:  el número N a multiplicar.  el numero de veces K que se desea realizar la multiplicación.  Pruebe su programa con N = 2, K = 3 (Resultado = 16).
  • 30. Modos de Direccionamiento  Permiten interpretar los bits de una dirección para encontrar el valor de un operando.  Modos:  Implícito  Inmediato  Directo  Indirecto  Registro  Registro Indirecto  Desplazamiento  No todas las computadoras utilizan todos los modos.
  • 31.  Direccionamiento Implícito.  No necesita recibir la dirección del operando, esta se encuentra implícita en la operación.  Ej.: MUL BX  Ventaja:  Acceso rápido.  Desventaja:  Conocer perfectamente la operación.
  • 32.  Direccionamiento Inmediato.  Recibe el operando y no la dirección de este.  Ej.: MOV AX, 4  Ventaja: no requiere memoria extra para traer el operando.  Desventaja: Solo puede utilizar constantes.
  • 33.  Direccionamiento Directo.  Recibe la dirección en memoria del operando.  Ej.: MOV AX, [10]  Ventaja:  Acceso rápido para variables globales.  Desventajas:  La instrucción siempre accesará la misma localidad de memoria.  Solo puede cambiar el valor del operando pero no su dirección.
  • 34.  Direccionamiento Indirecto.  Recibe la dirección de la palabra en memoria (apuntador) que contiene la dirección del operando.  Ej.: MOV AX, [[10]]  Ventaja:  La dirección en memoria puede apuntar a distintas localidades de memoria.  Desventaja:  La ejecución de la instrucción requiere de dos referencias a memoria para traer el operando (una para obtener su dirección y la otra para obtener su valor).
  • 35.  Direccionamiento de Registro (directo).  Similar al direccionamiento directo.  Recibe un registro en lugar de una dirección en memoria.  Ej.: MOV AX, BX  Ventaja:  No necesita referencias a memoria.  Desventaja:  Número limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados.  Este es el modo de direccionamiento más común.
  • 36.  Direccionamiento de Registro Indirecto.  Similar al direccionamiento indirecto.  Recibe un registro que contiene la dirección (apuntador) en memoria del operando.  Ej.: MOV AX, [BX]  Ventaja:  La dirección en el registro puede apuntar a distintas localidades de memoria (misma indirecta).  Utiliza una referencia menos a memoria en comparción con el direccionamiento inderecto.  Utilizado para apuntadores de uso frecuente.
  • 37.  Direccionamiento de Desplazamiento.  Combina los modos de direccionamiento directo y de registro indirecto.  Se requiere que la dirección del operando sea calculada en base a una dirección fija más otra dirección de desplazamiento. Dirección = Fija + Desplazamiento.  Tanto la dirección fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta.  La dirección fija puede estar ímplicita en la instrucción. 1. Relativo. 2. Indexado. 3. Base.
  • 38.  Relativo.  La dirección fija es el registro PC y se encuentra implícita en la instrucción.  Ej.: MOVPC AX, BX (BX = 5, PC = 10)  Indexado.  La dirección fija referencia a la memoria.  El desplazamiento contiene un número positivo para calcular la dirección del operando.  Ventaja: Eficiente para operaciones ciclicas.  Desventaja: dos accesos a memoria.  Dos tipos principales:  Preindexado.  Postindexado.
  • 39.  Preindexado (indexamiento previo)  La dirección fija es sumada al desplazamiento.  El resultado es usado como una dirección en memoria donde se encuentra la dirección del operando.  Ej.: MOV AX, [BX,CX]  Postindexado (indexamiento posterior)  La dirección fija contiene la dirección en memoria que a su vez contiene la dirección a ser utilizada para obtener el operando.  A la dirección obtenida a partir de la dirección fija se le suma el desplazamiento para obtener la dirección del operando.  Ej.: MOV AX, [BX]CX