Está en la página 1de 18

Est.

Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021


MICROPROCESADOR Y JUEGO DE INSTRUCCIONES
1. OBJETIVOS
1.1. OBJETIVO GENERAL

Reconocer las diversas características del set de instrucciones en lenguaje ensamblador, por medio
de la ejecución de comandos realizados el debug de Windows.

1.2. OBJETIVOS ESPECÍFICOS


• Conocer el funcionamiento de almacenamiento dentro de los registros (AX, BX, CX, DX, SP, SI, etc.)
para determinar el comportamiento de dichos registros al realizar diversas operaciones.
• Conocer el manejo del entrenador 8088, en cuanto a su programación en lenguaje ensamblador,
por medio de la realización de operaciones aritméticas, para observar los valores adoptados dentro
de los registros (AX, BX, CX, DX, SP, SI, etc.)
• Aprender a instalar los diversos programas para poder utilizar el lenguaje ensamblador
• Implementar lo aprendido en los respectivos ejercicios para poder resolverlos correctamente
2. FUNDAMENTO TEÓRICO
2.1. DEFINICIÓN.

El microprocesador (o simplemente procesador) es un dispositivo electrónico, es el circuito


integrado más complejo de un sistema informático; a modo de ilustración, se le suele llamar por
analogía el «cerebro» de un ordenador.
Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de
usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones
aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y
accesos a memoria.

2.2. Breve historia

El primer microprocesador fue el Intel 4004, producido en 1971. Se desarrolló originalmente para
una calculadora y resultó revolucionario para su época. Contenía 2300 transistores, era un
microprocesador de arquitectura de 4 bits que podía realizar hasta 60 000 operaciones por
segundo trabajando a una frecuencia de reloj de alrededor de 740 kHz.

Fig. 1 Microprocesador de Intel 4004

El primer microprocesador de 8 bits fue el Intel 8008, desarrollado a mediados de 1972 para su uso
en terminales informáticos. El Intel 8008 integraba 3300 transistores y podía procesar a
frecuencias máximas de 800 kH

1
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

El primer microprocesador realmente diseñado para uso general, desarrollado en 1974, fue el Intel
8080 de 8 bits, que contenía 4500 transistores y podía ejecutar 200 000 instrucciones por segundo
trabajando a alrededor de 2 MHz.

El primer microprocesador de 16 bits fue el 8086, seguido del 8088. El 8086 fue el inicio y el primer
miembro de la popular arquitectura x86, actualmente usada en la mayoría de los computadores. El
chip 8086 fue introducido al mercado en el verano de 1978, pero debido a que no había aplicaciones
en el mercado que funcionaran con 16 bits, Intel sacó al mercado el 8088, que fue lanzado en 1979.
Llegaron a operar a frecuencias mayores de 4 MHz.

Tabla 1 RESUMEN CARACTERÍSTICAS MICROPROCESADORES INTEL

PROCESADOR AÑO DE VELOCIDAD DE ARQUITECT NÚMERO DE DESCRIPCIÓN


PRESENTACI RELOJ URA TRANSISTORES
ÓN Bits (aprox.)
Primer chip, creado para
4004 1971 740kHz 4bits 2 300 una calculadora
(aplicación
aritmética)
Manipulación de datos y
8008 1972 108kHz 8bits 3 300 texto (velocidad de reloj
más lentos), en terminales

8080 1974 2MHz 8bits 4 500- 6 000 Aplicaciones de uso


general
8086/8088 1978 4MHz 16 bits - -
1985 16MHz a 32bits 275 000 Primer chip capaz de
Intel 368 33MHz manejar datos de 32 bits
Pentium II 1997 233MHz a 64 bits 7.5 millones Doble bus
300 MHz
Intel Core Dúo 2006 1.06 GHz a 32 bits 151 millones Sexta generación de
2.50GHz microprocesadores
Intel Core I7 2008 2.66 GHz a 64 bits 1 170 Séptima generación de
4.2 GHz millones microprocesadores
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

DIAGRAMA EN BLOQUES (ESTRUCTURA) BÁSICO DE UN SISTEMA MICROPROCESADO

Fig. 2 Diagrama en bloques sistema microprocesado básico

Los componentes importantes de cualquier sistema microprocesado son:


✓ CPU (µP)
✓ Memorias RAM, ROM
✓ Circuitos de interfaces entrada/salida (I/O–Input/Output) del sistema, p a r a conexión de
dispositivos externos.

Estos dispositivos están unidos mediante buses (BUS DE DIRECCIONES, BUS DE DATOS, BUS DE
CONTROL).

2.3. UNIDADES DE ALMACENAMIENTO DE LOS µP/µC

1 bit = unidad mínima de información, que puede adoptar dos valores “1” o “0”
1 Nibble = 4 bits
1 Byte = 8 bits = 2 Nibbles
1 WORD =16 bits = 4 Nibbles = 2 Bytes
1 DWORD (Double WORD) = 32 bits = 8 Nibbles = 4 Bytes
1 QWORD (Quadruple WORD) = 64 bits = 16 Nibbles = 8 Bytes

2.4. MEMORIAS

Dispositivo electrónico de almacenamiento de instrucciones de programa y/o datos temporal o


permanentemente, almacenando “0” o “1” lógicos.

2.4.1. MEMORIA RAM (RANDOM ACCESS MEMORY)


Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

Memoria de acceso aleatorio es volátil (si se quita la energía eléctrica se pierde la información), además
que el sistema accede a los datos almacenados de manera no secuencial, su característica es que es más
veloz a comparación de la ROM.

2.4.1.1. SRAM (STATIC RAM)

Es una memoria RAM estática está conformada internamente como una matriz, que en la cual cada una
de sus celdas o casillas se guarda los datos sin necesidad de un circuito de refresco (refresh) más rápida
que la DRAM, generalmente basado en transistores (BJT o Mosfet) y/o flip flops, almacena la
información momentáneamente.

Una memoria SRAM tiene tres estados distintos de operación: standby (modo reposo-espera), en el
cual el circuito está en reposo, reading o en fase de lectura, durante el cual los datos son leídos desde
la memoria, y writing o en fase de escritura, durante el cual se actualizan los datos almacenados en la
memoria.

1 0 1 1 0

corte = “1” 1 1 1
0 0 0
saturación = “0”
1 1 0 0 0 0

2.4.1.2. DRAM (DYNAMIC RAM)

Es una memoria RAM dinámica, basada en condensadores los cuales tienden a perder su carga
progresivamente, por lo cual necesitan un circuito dinámico de ciclos o periodos de refresco (refresh),
para que la información no se pierda, también es volátil.

1 0 1 1 0
carga = “1” 1
1
descarga = “0” 1 1 1

1 1 1
1 1 0 0 0 0
0
ciclo de refresco que proporciona el uP
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

Fig. 3 Memoria DRAM

Fig. 4 TTL RANGOS DE CARACTERÍSTICAS ELÉCTRICAS

(Fuente: (National Semiconductors Corporation, 1984))

2.4.2. MEMORIA ROM (READ ONLY MEMORY)

Memoria de solo lectura, memoria no volátil (si se quita la energía eléctrica no se pierde la información).

2.4.2.1. PROM (Programmable ROM)


Las memorias PROM (Programmable read-only Memory) o Memoria Programable de Sólo Lectura, es
un desarrollo militar de mediados los años 50. Lo más llamativo de este tipo de memoria es que el
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

procedimiento para grabar datos en el chip se realizaba mediante la aplicación de una sobrecarga de tensión,
entre los 12 y los 20 volts, a los diodos en el circuito integrado, a través de un aparato conocido como
“Programador ROM”, un circuito grabador.

2.4.2.2. EPROM (Erasable Programmable ROM)

Las memorias EPROM, (Erasable Programmable Read Only Memory) o Memoria Programable y Borrable
de Sólo Lectura, básicamente son memorias del tipo PROM pero que, al contrario de éstas, ofrecen la
posibilidad de poder borrar el contenido almacenado en ellas.

Las memorias EPROM se programan mediante la emisión de rayos de luz ultravioleta, los cuales penetran
en el circuito a través de una ventana en el encapsulado del circuito integrado.

Fig. 5 EPROM 27C512

2.4.2.3. EEPROM (Electrically Erasable Programmable ROM)

Las memorias EEPROM (Electrically Erasable Programmable Read Only Memory), o Memoria
Programable de Sólo Lectura Borrable Eléctricamente, son borrables, al igual que las memorias
EPROM, salvo que en este caso el procedimiento para borrar y rescribir la memoria es mucho más
sencillo, ya que se utiliza una corriente eléctrica, los microcontroladores actuales generalmente ya
vienen con memoria EEPROM internamente, pero también pueden expandirse y/o comunicarse con
otra memoria EEPROM mediante algún puerto de comunicación, por ejemplo el I2C.

Fig. 6 Modulo memoria EEPROM 24C256


Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

2.4.3. LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR


2.4.3.1. Registros Internos del Microprocesador

La Unidad Central de Proceso (CPU, por sus siglas en inglés) tiene 14 registros internos cada
uno de 16 bits. Los primeros cuatro AX, BX, CX y DX, son de uso general y se pueden usar
también como registros de 8 bits. Es decir, AX se puede dividir en AH y AL (AH es el Byte
alto, high, y AL es el byte bajo, low) Lo mismo es aplicable a los otros tres (BX en BH y BL,
CX en CH y CL y DX en DH y DL)

Estos son los únicos registros que pueden usarse de modo dual (en 8 o 16 bits) Los registros
de la CPU
son conocidos por sus nombres propios, que son:

2.4.3.1.1. AX Registro Acumulador (Accumulator Register)


2.4.3.1.2. BX Registro Base (Base Register)
2.4.3.1.3. CX Registro Contador (Counter Register)
2.4.3.1.4. DX Registro de Datos (Data Register)

2.4.3.1.5. DS registro del segmento de datos


2.4.3.1.6. ES registro del segmento extra
2.4.3.1.7. SS registro del segmento de pila (Segment Stack)
2.4.3.1.8. CS registro del segmento de código

2.4.3.1.9. BP registro del puntero (apuntador) base (Pointer Base)


2.4.3.1.10. SI registro índice fuente (Index Source)
2.4.3.1.11. DI registro índice destino (Index Destiny)
2.4.3.1.12. SP registro del puntero (apuntador) de pila (Pointer Stack)
2.4.3.1.13. IP registro del puntero (apuntador) de siguiente instrucción
(Pointer Index)
2.4.3.1.14. F registro de banderas (Flags)

2.4.3.2. REGISTROS DE USO GENERAL

AX REGISTRO ACUMULADOR (ACCUMULATOR REGISTER)

El registro AX se usa para almacenar resultados, lectura o escritura desde o hacia los
puertos, dividido en AH y AL (8 bits cada uno).

BX REGISTRO BASE (BASE REGISTER)


El BX es de direccionamiento indirecto, sirve como apuntador base o índice.

CX REGISTRO CONTADOR (COUNTER REGISTER)


El CX se utiliza en operaciones de iteración (bucles, instrucción LOOP), como un contador
de bucles que automáticamente se incrementa o decrementan de acuerdo con el tipo de
instrucción usada, desplazamiento y rotaciones, cadenas.

DX REGISTRO DE DATOS (DATA REGISTER)


El DX se usa como puente para el acceso de datos, es decir se utiliza junto a AX, para realizar
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

operaciones, multiplicaciones, divisiones y también entradas y salidas por puertos.

DS REGISTRO SEGMENTO DE DATOS (SEGMENT DATA)

El DS es un registro de segmento cuya función es actuar como policía donde se encuentran


los datos. Cualquier dato, ya sea una variable inicializada o no, debe estar dentro de este
segmento. La única excepción es cuando tenemos programas del tipo *.com, ya que en
éstos sólo puede existir un segmento. El registro ES tiene el propósito general de permitir
operaciones sobre cadenas, pero también puede ser una extensión del DS.

SS REGISTRO SEGMENTO DE PILA (SEGMENT STACK)

El SS tiene la tarea exclusiva de manejar la posición de memoria donde se encuentra la pila


(stack) Esta es una estructura usada para almacenar datos en forma temporal, tanto de un
programa como de las operaciones internas de la computadora personal (PC, por sus siglas
en inglés) En términos de operación interna, la CPU usa es- te segmento para almacenar las
direcciones de retorno de las llamadas a rutinas.

CS REGISTRO SEGMENTO DE CÓDIGO (SEGMENT CODE)

El registro de segmentos más importante es el CS o segmento de código. Es aquí donde se


encuentra el código ejecutable de cada programa, el cual está directamente ligado a los
diferentes modelos de memoria.

ES REGISTRO SEGMENTO EXTRA (SEGMENT EXTRA)

Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta
de segmento para manejar el direccionamiento de memoria. En este contexto, el registro
ES está asociado con el registro DI (índice). Un programa que requiere el uso del registro ES
puede inicializarlo con una dirección apropiada.

El registro BP (base pointer) se usa para manipular la pila sin afectar al registro de segmentos
SS. Es útil cuando se usa interfaz entre lenguajes de alto nivel y el ensamblador
Puesto que dicha interfaz se basa en el concepto de la pila BP, nos permite acceder
parámetros pasados sin alterar el registro de segmento SS. Los registros SI y DI son útiles
para manejar bloques de cadenas en memoria, siendo el primero la índice fuente y el
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

segundo el índice destino. En otras palabras, SI representa la dirección donde se encuentra


la cadena y DI la dirección donde será copiada.

El registro SP apunta a un área específica de memoria que sirve para almacenar datos bajo
la estructura
LIFO (último en entrar, primero en salir), conocida como pila (stack).
El registro IP (instruction pointer) apunta a la siguiente instrucción que será ejecutada en
memoria.

2.5. CONJUNTO DE INSTRUCCIONES (Microprocesadores 8086/8088)


Se pueden clasificar en los siguientes grupos:

2.5.1. INSTRUCCIONES DE TRANSFERENCIA DE DATOS.

Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria
principal, de y a los registros de datos, puertos de E/S y registros de segmentación.

Las instrucciones de transferencia de datos son las siguientes:


• MOV transfiere, mueve
• XCHG intercambia
• IN entrada
• OUT salida
• XLAT traduce usando una tabla
• LEA carga la dirección efectiva
• LDS carga el segmento de datos
• LES carga el segmento extra
• LAHF carga los indicadores en AH
• SAHF guarda AH en los indicadores
• PUSH FUENTE (sp) fuente
• POP DESTINO destino (sp)

2.5.2. CONTROL DE BUCLES (INSTRUCCIONES SIMPLES)


Las instrucciones de control de bucles son las siguientes:

• INC incrementar
• DEC decrementar
• LOOP realizar un bucle
• LOOPZ, LOOPE realizar un bucle si es cero
• LOOPNZ, LOOPNE realizar un bucle si no es cero
• JCXZ salta si CX es cero

2.5.3. INSTRUCCIONES ARITMÉTICAS.


• ADD suma
• SUB resta
• MUL multiplicación
• DIV división
2.5.4. OPERACIONES LÓGICAS
Son operaciones bit a bit que trabajan sobre octetos o palabras completas:
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

• NOT negación
• AND producto lógico
• OR suma lógica
• XOR suma lógica exclusiva
• TEST verifica puerto

2.5.5. INDICADORES (FLAGS)


Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits más significativos
están indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre
valen cero y el bit 1 siempre vale uno (esto también ocurría en los procesadores anteriores).

CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o
"préstamo" (en caso de resta) desde el bit de orden más significativo del resultado. Este
indicador es usado por instrucciones que suman o restan números que ocupan varios bytes.
Las instrucciones de rotación pueden aislar un bit de la memoria o de un registro poniéndolo
en el CF. F (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un número
par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.

AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "préstamo" del nibble
(cuatro bits) menos significativo al nibble más significativo. Este indicador se usa con las
instrucciones de ajuste decimal.

ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es cero.

SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los números negativos
se representan en la notación de complemento a dos, este bit representa el signo: 0 si es
positivo, 1 si es negativo.

TF (Trap Flag, bit 8): Si vale 1, el procesador está en modo paso a paso. En este modo, la CPU
automáticamente genera una interrupción interna después de cada instrucción, permitiendo
inspeccionar los resultados del programa a medida que se ejecuta instrucción por instrucción.

IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupción externas
enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las
interrupciones no enmascarables y las internas siempre se reconocen independientemente
del valor de IF.

DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirán "auto-
decremento", esto es, se procesarán las cadenas desde las direcciones más altas de memoria
hacia las más bajas. Si vale 0, habrá "auto-incremento", lo que quiere decir que las cadenas
se procesarán de "izquierda a derecha".
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operación aritmética con signo,
esto es, un dígito significativo se perdió debido a que tamaño del resultado es mayor que el
tamaño del destino.

2.6. DIAGRAMA INTERNO DEL MICROPROCESADOR 8088

Fig. 7 Diagrama interno del Microprocesador 8088

3. MATERIAL, EQUIPOS Y HERRAMIENTAS

• ENTRENADOR 8088
• Computador con debug
• Set de instrucciones

4. RESULTADOS OBTENIDOS (DESARROLLO DEL LABORATORIO)


LABORATORIO
1. Realizar las operaciones 4 operaciones aritméticas con los siguientes valores:
num1= F; num2 =5
2. Realizar la suma de 3 números
3. Realizar las siguientes operaciones y analizar, determinando los valores que se
obtendrán en cada etapa
1: MOV AX,000A
2: MOV BX,0004
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

3: MOV CX,0002
4: ADD AX,BX
5: SUB BX,CX
6: SUB AX,000A
7: MUL BX
8: MOV AX,F
9: MOV BX,F
10: DIV CX
11: INC CX
12: DEC BX
13 :INT 21
4. IMPRIMIR SU NOMBRE Y SU PRIMER APELLIDO
4.1. PASOS DESARROLLADOS EN EL LABORATORIO, CÁLCULOS REALIZADOS, CÓDIGO,
RESULTADOS OBTENIDOS
LABORATORIO
1. Realizar las operaciones 4 operaciones aritméticas con los siguientes valores:
num1= F ; num2 =5

SUMA

• DEBUG
• A
• MOV AX,000F
• MOV BX,0005
• ADD AX,BX
• ENTER
• T
• T
• T
• Q

RESTA
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

• DEBUG
• A
• MOV AX,000F
• MOV BX,0005
• SUB AX,BX
• ENTER
• T
• T
• T
• Q

MULTIPLICACIÓN

• DEBUG
• A
• MOV AX,000F
• MOV BX,0005
• MUL BX
• ENTER
• T
• T
• T
• Q
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

DIVISIÓN

• DEBUG
• A
• MOV AX,000F
• MOV BX,0005
• DIV BX
• ENTER
• T
• T
• T
• Q
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

2. Realizar la suma de 3 números


• DEBUG
• A
• MOV AX,0007
• MOV BX,000A
• MOV CX,0002
• ADD AX,BX
• ADD AX,CX
• ENTER
• T
• T
• T
• T
• Q

3. Realizar las siguientes operaciones y analizar, determinando los valores que se


obtendrán en cada etapa

1: MOV AX,000A Da el valor 000A a AX


2: MOV BX,0004 Da el valor 0004 a BX
3: MOV CX,0002 Da el valor 0002 a CX
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

4: ADD AX,BX Suma AX (000A) con BX (0004) poniendo el resultado en AX (000E)


5: SUB BX,CX Resta BX (0004) con CX (0002) poniendo el resultado en BX (0002)
6: SUB AX,000A Resta AX (000E) con 000A poniendo el resultado en AX (0004)
7: MUL BX Multiplica AX (0004) con BX (0002) poniendo el resultado en AX (0008)
8: MOV AX,F Da el valor 000F a AX
9: MOV BX,F Da el valor 000F a BX
10: DIV CX Divide AX (000F) con CX (0002) poniendo el resultado en AX (0007) y el
residuo en DX (0001)
11: INC CX Incrementa en 1 a CX (0003)
12: DEC BX Decrementa en 1 a BX (000E)
13 :INT 21
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

4. IMPRIMIR SU NOMBRE Y SU PRIMER APELLIDO

I 49
v 76
a 61
n 6E
20
F 46
l 6C
o 6F
r 72
e 65
s 73
Est. Leivis Ivan Flores Pari LABORATORIO 1 SML-300 C II 2021

5. ANEXOS (tablas, diagramas, esquemas, imágenes, código o información relevante que no


se encuentra en otras secciones del documento)

6. CONCLUSIONES Y RECOMENDACIONES

Aprendí lo necesario para poder realizar todos los ejercicios correctamente

Logre instalar correctamente todo el software necesario para la realización del laboratorio

7. REFERENCIAS BIBLIOGRÁFICAS

[1] Carter, P. A. (9 de agosto de 2007). lenguaje ensamblador para PC.


Obtenido de https://pacman128.github.io/static/pcasm-book-spanish.pdf

[2] ensamblador, p. e. (s.f.). ATE-Universidad de Oviedo.


Obtenido de https://www.unioviedo.es/ate/alberto/TEMA3-
Ensamblador.pdf

[3] UNIOVIEDO. (s.f.). manual de microcontroladores pic.


Obtenido de https://www.unioviedo.es/ate/alberto/manualPic.pdf

También podría gustarte