You are on page 1of 22

UNIVERSIDAD NACIONAL DE SAN AGUSTIN FACULTAD DE INGENIERIA DE PRODUCCIN Y SERVICIOS DEPARTAMENTO ACADEMICO DE INGENIERIA DE SISTEMAS E INFORMTICA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Curso:

Arquitectura de Computadoras Segundo Trabajo sobre:

<Componentes de Computadoras>

PRESENTADO POR: < Velasco Aasco Hossmell >

U.N.S.A F.I.P.S ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS CURSO: ARQUITECTURA DE COMPUTADORAS SEGUNDA PRCTICA DE LABORATORIO FUNDAMENTOS DE PROGRAMACIN DEL 8086 I. OBJETIVOS Identificar los principales elementos que conforman el Ambiente Integrado de Programacin (IDE) del programa EMU8086. Identificar los registros del modelo de programacin del 8086. Observar la relacin que existe entre los lenguajes de ensamblador y mquina. Reconocer los modos de direccionamiento bsicos del micro 8086. Imprimir un carcter en la pantalla de usuario, modificando sus parmetros. Utilizar el emulador en la creacin y ejecucin un archivo tipo COM.

II. CUESTIONARIO PREVIO 1. Defina los siguientes trminos //glosario de los terminos 10 a) Lenguaje mquina
-Lenguaje de mquina es el sistema de cdigos directamente interpretable por un circuito micro programable, como el microprocesador de una computadora o el microcontrolador de un autmata (un PLC) . Este lenguaje est compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de mquina (ms los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de mquina es especfico de cada mquina o arquitectura de la mquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.

El lenguaje mquina es el nico lenguaje que puede ejecutar una computadora. El lenguaje de mquina es un cdigo que es interpretado directamente por el microprocesador. Todo cdigo fuente en ltima instancia debe llevarse un lenguaje mquina mediante el proceso decompilacin o Interpretacin para que la computadora pueda ejecutarlo. La Segmentacin de memoria es un esquema de manejo de memoria mediante el cual la estructura del

programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos. Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. Obviamente este sistema de gestin de memoria es utilizado en Sistemas operativos avanzados, pero ya existan muestras de su actividad desde los S.O.s Unix y D.O.S

b) Interrupcin
El sistema de interrupciones para un programador consiste en un conjunto de posiciones de memoria comenzando en la direccin absoluta de memoria 0, que contienen, cada dos palabras, una direccin de salto a una rutina de atencin a la interrupcin. (la direccin 0 corresponde a la interrupcin 0, la direccin 2 a la interrupcin 1, etc). Cuando se invoca una interrupcin, sea fsica, por algn dispositivo, o lgica, algn error de ejecucin o invocacin de programa, el mecanismo de atencin toma de la direccin correspondiente que le indica el nmero de interrupcin, la direccin destino del salto y obtiene de all la siguiente instruccin a ejecutar. Para crear una rutina de atencin a determinada interrupcin, el programador tiene que localizar el programa en memoria y luego almacenar en la posicin de la interrupcin correspondiente la direccin de comienzo del mismo. Naturalmente escribir una rutina de interrupcin obliga a respetar ciertos protocolos.

c) Bifurcacin
Una bifurcacin, rama o fork en el mbito de desarrollo de software, es la creacin de un proyecto en una direccin distinta de la principal u oficial tomando el cdigo del proyecto ya existente. Comnmente se utiliza el trmino ingls. Una bifurcacin o fork, cuando se aplica en el contexto de un lenguaje de programacin o un sistema operativo, hace referencia a la creacin de una copia de s mismo por parte de un programa, que entonces acta como un "proceso hijo" del proceso originario, ahora llamado "padre".

d) Bifurcacin condicional
la bifurcacin condicional permite someter a prueba condiciones y, a continuacin, en funcin del resultado de la prueba, realizar distintas operaciones. Visual FoxPro ofrece dos comandos que permiten realizar una bifurcacin condicional: IF ELSE IF ENDIF.

e) Puntero
El puntero es un herramienta que se utiliza para sealar un punto o regin de la memoria. Un puntero o apuntador es una variable que referencia una regin de memoria; en otras palabras es una variable cuyo valor es una direccin de memoria

f) Pila
Es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informtica debido a su simplicidad y ordenacin implcita en la propia estructura. Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar (push), que coloca un objeto en la pila, y su operacin inversa, retirar (o desapilar, pop), que retira el ltimo elemento apilado.

g) Acceso a memoria
El acceso directo a memoria es una caractersticas de las computadoras microprocesadores modernos que permite que ciertos subsistemas de hardware dentro de la computadora puedan acceder a la memoria del sistema para la lectura y/o escritura, independientemente de la unidad central de procesamiento (CPU). De lo contrario, la CPU tendra que copiar cada porcin de dato desde l origen hacia el destino, haciendo que sta no est disponible para otras tareas. EN Aquellas computadoras que tienen canales DMA pueden transferir datos desde y hacia los dispositivos con menos utilizacin de CPU que aquellas computadoras sin canales DMA. Bsicamente una transferencia DMA consiste en copiar un bloque de memoria de un dispositivo a otro. Esa transferencia se lleva a cabo por el controlador DMA, en lugar del CPU. El controlador DMA es generalmente un chipset de la placa madre.

h) Tipos de variables
es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qu valores pueden tomar y qu operaciones se pueden realizar. Tipos de datos comunes son: enteros, nmeros de coma flotante (decimales), cadenas alfanumricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra.

i) Macro
es una serie de instrucciones que se almacenan para que se puedan ejecutar de forma secuencial mediante una sola llamada u orden de ejecucin.

Con el fin de evitar al programador la tediosa repeticin de partes idnticas de un programa, los ensambladores y compiladores cuentan con macroprocesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario. Para utilizar una macro, primero hay que declararla. En la declaracin se establece el nombre que se le dar a la macro y el conjunto de instrucciones que representar.

2. Utilizando cualquier editor de programacin, identifique en la opcin memoria los segmentos de memoria disponibles y sus tamaos por defecto //programacin estruncturada buscar a lo que esa memoria

3. Explique claramente la diferencia entre un programa COM y un EXE, cual de ellos se ejecuta ms rpidamente, Porqu?
Los programas .EXE es una extensin que se refiere a un archivo ejecutable de cdigo re ubicable y los programas.COM son es un tipo simple de fichero ejecutable.

Para MS-DOS slo existen dos tipo de archivos ejecutables los .COM y .EXE. Ambos archivos difieren en algunas cosas. Primero, las ventajas de los .EXE son dobles,tiene lo que se llama PSP o program segment prefix que es una cabecera nos permiten tener archivos reubicables y el uso de hasta cuatro segmentos (STACK, DATA, EXTRA y CODE) de hasta 64KB cada uno. Un archivo .COM slo puede tener un segmento de 64KB, en el que se tiene tanto cdigo como pila, y datos. La desventaja de los .EXE es que agrega n 512 bytes como cabecera con informacin para la reubicacin del cdigo. Un .COM no es reubicable, siempre inicia en la direccin 0100H.

La Que se ejecuta mas rapido es la .com por que su direccion es unica.

4. Visite la pgina www.emu8086.com, luego de revisar la documentacin proporcionada, de una breve explicacin de su objetivo y funcionalidad (en lnea hay manuales en espaol)

Es un programa que permite desarrollar la programacin en lenguaje ensamblador de forma muy intuitiva, tambin brinda una serie de recursos que permite ejecutar y depurar programas. Dentro de los lenguajes ensamblador que se puede desarrollar tenemos: COM template, EXE template, BIN template y BOOT template .

III. MARCO TERICO El microprocesador 8088/8086.//paralelismo Microprocesador de 8 bits, primero en presentar un diseo estructural, hecho pensando en las necesidades del usuario (aplicaciones), aparece en junio de 1978, fabricado por Intel, el 8086 aparece casi en simultneo siendo el primer uprocesador de 16 bits Caractersticas tcnicas: Bus de datos interno: 16 bits Bus de datos externo: 16 bits Bus de direcciones: 20 bit Velocidad: 4.77-8 MHz 92 instrucciones 7 modos de direccionamiento El 8086 es up de 16 bits, en su estructura como en conexiones externas 8088 es un procesador de 8 bits que internamente es casi idntico al 8086. La nica diferencia entre ambos es el tamao del bus de datos externo Cada procesador tiene dos sub-procesadores: unidad de ejecucin (EU: Execution Unit) y unidad interfaz del bus (BIU: Bus Interface Unit). La unidad de ejecucin realiza operaciones mientras que la unidad de interfaz del bus es la encargada de acceder a datos e instrucciones Las unidades de ejecucin son idnticas en ambos microprocesadores, pero las unidades de interfaz del bus son diferentes en varias cuestiones. La ventaja de esta divisin fue el ahorro de esfuerzo necesario para producir el 8088. Slo una mitad del 8086 (el BIU) tuvo que redisearse para producir el 8088. Arquitectura interna de 16 bits Soporta 1 MB de memoria Aritmtica con signo y sin signo de 8 y 16 bits, tanto en binario como en decimal, incluyendo multiplicacin y divisin. 14 registros de 16 bits. Interrupcin enmascarable y no enmascarable. Acceso directo a memoria Soporte para coprocesadores de bus local. Soporte para E/S mapeada en memoria.

Operaciones de cadena.

Se muestra la estructura interna del 8088

Unidad Aritmtica Lgica: Realiza operaciones aritmticas y lgicas. Las operaciones pueden ser de 16 bits o de 8 bits. Sistema de Control de EU: Decodifica instrucciones que le enva la cola y genera rdenes segn tabla que tiene almacenada en ROM llamada CROM (Control Read Only Memory). Cola de Instrucciones: Almacena instrucciones a ser ejecutadas, se carga cuando el bus est desocupado (La del 8086 tiene 6 bytes, el del 8088 tiene cuatro bytes). Registros de trabajo: El microprocesador 8088, posee 14 registros internos, distribuidos en las dos unidades especificadas, algunos son de uso general, otros de segmento, registros puntero y registro de banderas o flags.

Los REGISTROS GENERALES son registros de 16 bits, pudindose usar cada uno de ellos como dos registros de 8 bits. Aun siendo registros de uso general tiene asignadas unas operaciones especficas. AX es el acumulador de 16 bits y usndolo a veces provoca que el ensamblador produzca un lenguaje mquina codificado en muy pocos octetos. Se emplea en multiplicaciones, divisiones, entradas/salidas, etc., adems AL es el acumulador de 8 bits BX se utiliza como registro base para el direccionamiento de memoria CX se utiliza como contador y almacenaje de datos DX se utiliza para almacenar datos de 16 bits. Puede pensarse que es una extensin del registro AX para multiplicaciones y divisiones con 16 bits. Otra de sus funciones especficas es para almacenar la direccin de E/S durante algunas operaciones de E/S.

Los REGISTROS PUNTERO son registros de 16 bits: IP (instruction pointer) como registro puntero de instrucciones conocido principalmente como contador de programa. Este contiene un valor de 16 bits que es un desplazamiento sobre la direccin del registro CS ( segmento de cdigo ) detallado ms adelante. SP (stack pointer) como registro de pila. BP (base pointer) acta como base de la direccin de la pila.

Los registros puntero de instrucciones ( IP ) y puntero de pila ( SP ) se encargan del control de flujo del programa.

Los registros SI (source index) y DI (destine index) actan como ndices asociados al registro DS ( segmento de datos ).

El grupo de registros de segmento est formado por los registros CS, SS, DS y ES. Apuntan al inicio de un rea de memoria destinada a almacenar informacin especfica: CS ( segmento de cdigo ): cdigo del programa DS ( segmento de datos ): datos del programa SS ( segmento de pila ): pila para almacenamiento local y temporal ES (segmento extra ): almacenamiento extra para textos, mens y estructuras estticas

La importancia de dichos registros queda reflejada en la estructura de la memoria con la tcnica de segmentacin, que principalmente radica en el que el espacio total de memoria se divide en trozos de 64K bytes, que reciben el nombre de segmentos.
FFFFF

SEGMENTO CODIGO CS

SEGMENTO EXTRA SS

SEGMENTO DE DATOS DS

SEGMENTO EXTRA ES

00000

El REGISTRO DE ESTADO (F) de 16 bits, aunque algunos de ellos no se utilizan. Cada uno de los bits se denomina indicador o flag, que generalmente, se modifican por las operaciones lgicas y aritmticas.

CF Carry Flag: indica que hubo "arrastre"

PF Parity Flag: paridad impar del resultado, se usa para detectar errores en transmisiones. ZF Zero Flag: si resultado de la operacin es cero. AF Auxiliary carry: indica "arrastre" del nibble (cuatro bits) menos significativo al nibble ms significativo. Para BCD. SF Sign Flag: bit ms significativo de resultado. representa el signo: 0 si es positivo, 1 si es negativo. TF Trap Flag: Si vale 1, el procesador est en modo paso a paso. En este modo, la CPU automticamente genera una interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin por instruccin. . IF Interrupt Flag: Si vale 1, la CPU reconoce pedidos de interrupcin 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: Si vale 1, las instrucciones con cadenas sufrirn "auto-decremento", esto es, se procesarn las cadenas desde las direcciones ms altas de memoria hacia las ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas se procesarn de "izquierda a derecha". OF Overflow flag: Si vale 1, hubo un desborde en una operacin aritmtica con signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor que el tamao del destino.

Memoria segmentada La forma en que se completan los 20 bits requeridos por el bus de direcciones, disponiendo en la CPU, solamente, registros de 16 bits, se consigue de la siguiente manera: se parte del contenido de uno de los registros de segmento, que actan como base. Despus, se multiplica por 16 el contenido del registro de segmento, lo que, en binario, significa aadirle 4 ceros a la derecha y convertirlo en una magnitud de 20 bits. Finalmente, se suma un desplazamiento al resultado de la multiplicacin anterior. La frmula para calcular una direccin de memoria es:

Direccin Fsica = 16 * ( registro de segmento ) + desplazamiento.

Juego de instrucciones

Conjunto de cdigos binarios que reconoce el uP y ejecuta

Cod-op d w 1er byte obligatorio

mod reg r/m 2do byte opcional

Data o adress 3er byte opcional

Data o adress 4to byte opcional

Formato de instrucciones del 8088 Clasificacin: a) Por el nmero de operandos: Sin operando Ejemplo: STI, CLC, HALT Con un operando. Ejemplo: INC CX, DEC AL, JMP 07H Con dos operandos. Ejemplo: MOV AX,CX ADD AL,28H

b) Por el tipo de operacin: Transferencia: MOV, PUSH, POP, etc Aritmticas: ADD, ADC, SUB, DIV, etc Lgicas: CMP, AND, XOR, etc Manipulacin de cadenas: MOVS. COMPS, etc Control del procesador: HALT, CLI, STC, etc Control de programa: JMP, JNZ, JE, etc

Ver el juego de instrucciones en el anexo Modos de direccionamiento

Formas de referenciar al segundo operando a) Directo: El campo de direcciones contiene la direccin del operando Ejemplo: MOV AX,[2315H] b) Por valor: ADD CX, DATA La localidad de memoria apuntada por el campo de direccin de la instruccin contiene la direccin (apuntador) al operando, EA = (A), Busca en A, encuentra la direccin (A) y ah busca el operando c) Por registro:

El operando est en el registro nombrado en el campo direccin Ejemplo: ADD AX,BX

d) Inmediato El operando es parte de la instruccin e) Relativo a base XOR AL,[BX+12H] f) Indexado a base A = base, R = desplazamiento, EA = A + R Ejemplo: AND CL,[BP+DI] g) Directo indexado Ejemplo: CMP BL,[SI+2312H]

III.

ACTIVIDADES 1. Ejecute el EMU 8086

2. Presione el botn que indica New. 3. Observar una ventana donde escribir sus futuros programas, llamados en general cdigo fuente. 4. Desde ah se puede crear un nuevo documento. Observe la figura Choose code template , elija empty workspace.

5.

Seleccione en la barra de men la opcin EMULATOR y en sta SHOW EMULATOR. Se abrir una ventana donde podr observar diferentes elementos: cargar (load), recargar (reload), ejecutar paso a paso (single step) y ejecutar (run). Tambin podr ver, en la parte central, tres columnas en las que se detalla el contenido de los registros del 8086, el contenido de la memoria y el programa desensamblado.

Abajo podr acceder a la pantalla de usuario (user screen),

el cdigo fuente (actual source),

la Unidad Aritmtica y Lgica (ALU), (FPU), memoria en la opcin vars

Las variables

la Pila (stack), un debug y el registro de banderas (flags) o estados.

Cierre la ventana del emulador, pero no cierre la ventana del cdigo fuente. 6. Escriba el programa mostrado, analize su funcin
.model small .stack .data .code mov AX,@data mov ds,ax mov AH, 7Ah mov BL, 99 mov CL, 11001111b

;carga en DS la direccin ;donde est el ;segmento de datos ;carga AH con 7Ah ;carga BL con 99 ;carga CL con 11001111b

mov AX, 100 mov BX, 'A' mov CX, 0ABCDh mov DX, 6540 mov ax, 4c00h int 21h end

;carga AX con 100 ;carga BX con carcter A ;carga CX con ABCDh ;carga DX, con 6540 ;fin del programa

7. Compile el programa usando el men, el programa le informar la creacin de un COM o EXE (Ud. indique) , asgnele un nombre al programa 8. Emule el programa, ver marcada la instruccin que se ejecuta, el contenido de los registros, la memoria y el programa desensamblado

9. Llene los datos antes de la ejecucin AX:00 00 CS:0720 BP:0000 DI:0000 BX:00 00 DS:0700 IP:0000 SI:0000 CX:01 1C ES:0700 SP:0100 DX:00 00 SS:0710

10. Presione RUN y anote los resultados, porqu se obtienen estos? AX:4C 00 CS:F400 BP:0000 DI:0000 BX:0041 DS:0720 IP:0204 SI:0000 CX:ABCD ES:0700 SP:00FA DX:198C SS:0710

11. Cargue nuevamente el programa y ejectelo paso a paso SINGLE STEP, explique los resultados que va obteniendo, ponga atencin especial en CS e IP CS 0720 0720 0720 0720 0720 0720 IP 0003 0005 0007 0009 000B 000E

12. Complete la tabla direccion Seg(cs) 0720 0705 0720 0720 0720 0720 0720 Apartir de 0720 0720 direccion offset 0005 0007 0009 000b 000E 0011 0014 Esta parte 0017 001A lenguaje campo B4 B3 B1 B8 bb B9 ba Se hace B8 cd maquina campo 7A 63 Cf 64 41 cd 8c Con las 00 21 Lenguaje ensamblador campo linea Mov AH,7 Mov BL,99 Mov CL,11001111b 00 Mov AX,100 00 Mov BX,78 Ab mov CX,0ABCDh 19 Mov DX,6540 interrupciones 4c Mov AX,4C00h Int 21h

13. Cierre el emulador y cree ahora el siguientes programa


.model small .stack .data .code MOV AX,@data MOV DS,AX MOV DX, 0112h MOV BX, DX MOV AL, 'A' MOV AH, 61h MOV [BX], AH MOV [BX+1], AL MOV CX, [BX] mov ax, 4c00h

; Carga dato inmediato en DX ; Copia DX en BX, movimiento entre ;registros ; Almacena carcter en AL ; Guarda dato en AH ; Almacena en direccin indicada por ; DS:BX, indirecto ; Almacena dato relativo a base: ; DS:BX+1 ; Copia el dato de la direccin en CX ;registro, indirecto ;fin del programa

int 21h end

14. Emule el programa y antes de ejecutarlo anote en la tabla el contenido de las direcciones con desplazamiento 0112H y 0113H, as como el contenido de CX, luego ejecute paso a paso anotando resultados en ambas tablas segn se solicita

seg

offset 0112h 0113h cx

registro

Inicio programa B8 20 07 B8 20 07 011A

Antes de 5 B041 B041 011A

Despues 5 B461 B461 011A

Despues 6 8827 8827 011A

Despues 7 884701 884701 011A

direccion seg 0720 0720 0720 0720 0720 0720

offset 0000 0003 0005 0008 000a 000c

Lenguaje de campo B8 8e BA 8b B0 B4

maquina campo 20 D8 13 da 41 61

Lenguaje de linea Mov ax Mov ds Mov DX Mov BX Mov AL Mov AH

Ensamblador linea 00720h Ax 0013h Dx 041 061h

15. Cierre el emulador y escriba ahora el tercer programa

16. Emule y ejecute, observe la informacin en la pantalla de usuario, describa la misma e indique las diferencias obtenidas

cambia las direcciones iniciales nos muestra la letra A por screem. 17. Modifique el programa sustituyendo el dato en BX por 10Eh, corra el programa, que ha sucedido muestra la letra A a un costado del screem. 18. Modifique ahora el dato almacenado en CH, cambindolo por 11010000b y observe su efecto, anote sus observaciones. muestra el fondo de la letra en blanco. 19. Vuelva a cambiar CH, ahora por 10011110b, observe y describa el cambio. muestra el fondo de la letra en amarillo. 20. Pruebe a hacer algunos cambios en CH, CL y BX, anote sus observaciones: si ponemos ch=11111111b no muestra nada de la letra. si ponemos ch=00000000h no mestra nada en el screem. 21. Para cada instruccin usada en los tres programas, identifique el modo de direccionamiento de cada uno. primero ejemplo:
mov AX,@data mov ds,ax mov AH, 7Ah mov BL, 99 mov CL, 11001111b mov AX, 100 mov BX, 'A' mov CX, 0ABCDh mov DX, 6540 mov ax, 4c00h int 21h ;por dato ;por dato ;por regsitro ;por registro ;po registro ;por registro ;por registro ;por registro ;por registro ;por registro

segundo ejemplo:

MOV AX,@data MOV DS,AX MOV DX, 0112h MOV BX, DX MOV AL, 'A' MOV AH, 61h MOV [BX], AH MOV [BX+1], AL MOV CX, [BX]

por dato; ; por dato ; por registro ; por dato ; por dato ; directo ; relativo a base ;indexado a base

para el tercero: MOV AX,0B800h :por registro MOV DS,AX :por registro MOV CL, 'A' :por registro MOV CH,11011111b :por registro MOV BX,15E0h por registro MOV [BX],CX indexado a base

IV. CUESTIONARIO 1. En el encabezado del primer programa por qu se incluye la lnea org 100h? -Es un requerimiento para poder correrlo sin problemas, es una direccin inicial del programa . 2. Al introducir datos en los registros del microprocesador se usan diferentes formatos (bases de numeracin) cuntos y cules son? byte ,Word deword,qword,tword. 3. La sintaxis de la instruccin MOV define tres campos: instruccin, dato1 y dato2. Al moverse los datos cul es la fuente y cual el destino? la fuente es el dato2. el destino es dato1.

4. Al observar las tablas se nota que a la misma instruccin MOV se le asignan diferentes cdigos hexadecimales a qu se debe esto? se debe a la variable de dato que esta utilizando que tiene que estar hexadecimal. 5. Cul es la funcin que cumple el registro IP? sirve para ver la direccin inicial de la lnea de cdigo.

Registro puntero de instruccin o contador de programa (PC). Contiene el desplazamiento de la Siguiente instruccin a ejecutar respecto al segmento de cdigo en ejecucin. Por lo tanto, la direccin completa de la siguiente instruccin sera CS:IP. La nica forma de influir en este registro es de forma indirecta mediante instrucciones de bifurcacin. 6. En la columna OFFSET de las tablas, stos no se incrementan a una razn constante por qu? es la direccin de memoria 0100Hh dentro del segmento especfico. 7. En las instrucciones donde se incluyeron corchetes Qu diferencias observ en su ejecucin? en que donde hay corchetes ah necesariamente tienes que ir a la memoria a acceder el dato que se necesita, en cambio sin el corchete, solo se busca entre los registros. Al ejecutar el tercer programa, a medida que haca las modificaciones qu efecto concreto logra el cambio en el registro BX? cambia el desplazamiento de la imagen para diferentes lugares en screem. 9. Al modificar CH qu bits especficos se modificaron para lograr cambios en el fondo y color de los caracteres? cuando se modifica el CH cambia los colores la imagen a veces segn sea el cdigo desaparece.

8.

V. CONCLUSIONES Consigne al menos cinco conclusiones a las que ha arribado en el desarrollo de la prctica
pude ver como ver imprimir un carcter por el screem.asi como tambin modificar sus parmetros ya sea de CH para los colores, BX para el desplazamiento. vi algunos elementos del programa de EMU8086. vi tambin algunos registros del emulador. y por ultimo los modos de direccionamiento.