Sunteți pe pagina 1din 9

I.

Actividades

1. Primer Programa

a. Paso 7: Código de Primer Programa

b. Paso 12: Vista antes de ejecutar Primer Programa

AX: 0000 BX: 0000 CX: 0013 DX: 0000


CS: 0700 DS: 0700 ES: 0700 SS: 0700
BP: 0000 IP: 0100 SP: FFFE
DI: 0000 SI: 0000
c. Paso 13: Vista después de ejecutar Primer Programa

AX: 0064 BX: 0041 CX: ABCD DX: 198C


CS: 0700 DS: 0700 ES: 0700 SS: 0700
BP: 0000 IP: 0112 SP: FFFE
DI: 0000 SI: 0000

d. Paso 14: Cargue nuevamente el programa


Se reinicia cada dato obtenido a su forma original. CS no ha cambiado sigue siendo 0700H,
pero IP volvió a ser 0100H, es decir a la primera instrucción de programa.

e. Paso 15: Ejecute sólo la primera instrucción


Se cargó el dato tal cual como fue esperado, realizándose con éxito el comando MOV AH,
7AH. El registro CS no ha cambiado, sin embargo IP avanzó 2 posiciones, que es lo que
equivale la instrucción realizada.
f. Paso 16: Interprete la información de la tabla
En la tabla 1, se puede observar que los datos en cada registro son los iniciales. Casi cada
registro está varío y algunos toman valores específicos ya esperados. Además, el valor de IP
es el que se ingresó al inicio.

g. Paso 17: Continúe ejecutando paso a paso y llene la tabla

DIRECCIONES LENGUAJE DE LENGUAJE


MÁQUINA ENSAMBLADOR
SEGM (CS) OFFSET CAMPOS LÍNEA
0700 0100 B4 7A mov AH, 7A
0700 0102 B3 63 mov BL, 99
0700 0104 B1 CF mov CL, 11001111b
0700 0106 B8 64 00 mov AX, 100
0700 0109 BB 41 00 mov BX, 78
0700 010C B9 CD AB mov CX, 0ABCDh
0700 010F BA 8C 19 mov DX, 6540
0700 0112 C3 ret
NOTA: A partir de este punto, el programa ejecuta un procedimiento
predeterminado llamado Interrupción.
0700 0000 CD 20 INT20H
0700 0150 FF FF BIOS DI

2. Segundo Programa

a. Paso 20: Código de Segundo Programa


b. Paso 23: Observe y anote en la tabla

SEG (DS) OFFSET Inicio del Antes Después Después Después


Programa de 5a de 5a de 6a de 7a
0700h 0112h 90h 90h 61h 61h 61h
0700h 0113h 90h 90h 90h 41h 41h
REGISTRO CX 0011h 0011h 0011h 0011h 4161h

c. Paso 27: Vista después de ejecutar Primer Programa

DIRECCIONES LENGUAJE DE LENGUAJE


MÁQUINA ENSAMBLADOR
SEGM (CS) OFFSET CAMPOS LÍNEA
0700 0100 BA 12 01 mov DX, 0112h
0700 0103 8B DA mov BX, DX
0700 0105 B0 41 mov AL, ‘A’
0700 0107 B4 61 mov AH, 61h
0700 0109 88 27 mov [BX], AH
0700 010B 88 47 01 mov [BX+1], AL
0700 010E 8B 0F mov CX, [BX]
0700 0110 C3 ret

3. Tercer Programa

a. Paso 29: Código de Tercer Programa

b. Paso 30: Emule y ejecute el programa


Después de haber ejecutado el programa correspondiente, se obtiene una ventana
emergente con una letra A blanca con fondo del carácter en magenta, y el resto de negro.
c. Paso 27 y 28: Modifique el programa sustituyendo el dato que se almacena en BX (15Eh)
por 10Eh y corra el programa
Al realizar la modificación anterior se obtiene que el carácter A ha sido desplazado hacia la
derecha, lo cual nos lleva a pensar que este dato interviene con el espaciado.

d. Paso 33: Modifique ahora el dato almacenado en CH, cambiándolo por 11010000b
Al realizar la modificación, se obtiene que el color de la letra A ha cambiado de blanco a
negro, lo cual nos lleva a pensar que este dato tiene que ver con el color de fuente.

e. Paso 34: Vuelva a cambiar CH, ahora por 10011110b


Al realizar la modificación, se obtiene que el color de la letra A y su fondo ha cambiado de
color a blanco y azul respectivamente. Esto nos lleva a pensar que este dato interviene
tanto en el fondo del carácter como su color de fuente.
f. Paso 35: Pruebe a hacer algunos cambios en CH, CL y BX
Se hizo algunos cambios menores como CH=10100000b, CL='C', y BX=12Eh. Se obtuvo lo
siguiente:
II. Análisis de Resultados

a. Primer Programa

 En el encabezado del programa ¿por qué se incluye la línea “org 100h”?


Con esto se determina en qué posición de memoria el microprocesador debe buscar la
primera instrucción del programa.

 Al introducir datos en los registros del microprocesador se usan diferentes formatos


(bases de numeración) ¿cuántos y cuáles son?
Se puede ingresar datos en sistema binario, decimal o hexadecimal. Para distinguir entre
estas diferentes bases numéricas, se adiciona una b al final para sistema binario, una h para
sistema hexadecimal, o nada por defecto para sistema decimal.

 La sintaxis de la instrucción MOV define tres campos: instrucción, dato1 y dato2. Al


moverse los datos ¿cuál es la fuente y cual el destino?
Dato1 vendría a ser el destino y Dato2 vendría a ser la fuente.

 Al observar la tabla1 se nota que a la misma instrucción MOV se le asignan diferentes


códigos hexadecimales ¿a qué se debe esto?
Se debe a que dependiendo del dato que queramos mover, el código de programa variará
de manera drástica. Para esto, es necesario conocer cuál es la sintaxis completa.

 ¿Cuál es la función que cumple el registro IP dentro del PRIMER PROGRAMA?


El registro IP realiza el seguimiento de cada instrucción a través de cada instrucción del
programa. De esta manera el microprocesador sabe cuál es la instrucción que va a ejecutar
y en qué posición de memoria lo debe buscar.

 En la columna OFFSET de la tabla1, éstos no se incrementan a una razón constante ¿por


qué?
Esto se debe a que dependiendo de la instrucción, los bits necesarios para cada una puede
aumentar o disminuir, de esta manera, no siempre se utilizará el mismo número de bits para
una instrucción mov.

b. Segundo Programa

 Al comparar las dos primeras instrucciones ¿qué diferencias hay al ejecutarlas, siendo que
las dos son MOV?
La diferencia es que la primera instrucción utiliza el tipo de direccionamiento inmediato
(carga un dato definido por la instrucción), mientras que la segunda utiliza un tipo de
direccionamiento mediante registro.
 En las últimas tres instrucciones se incluyeron corchetes (paréntesis cuadrados) en las
instrucciones ¿Qué diferencias observó en su ejecución respecto a las primeras dos
instrucciones?
Cuando se usa corchetes se refiere que el dato que se está buscando se encontrará en la
dirección definida por el valor en corchete. Este es un tipo de direccionamiento relativo a
registro.

 ¿Por qué al ejecutar la séptima instrucción los datos se almacenan en CX en ese orden
específico?
Porque en lenguaje assembler, siempre se carga primero el dato menos significativo, y
posteriormente el más significativo.

c. Tercer Programa

 Al ejecutar el programa, a medida que hacía las modificaciones ¿qué efecto concreto logra
el cambio en el registro BX?
Este cambio define la posición del carácter con respecto a la venta emergente. Mientras
más grande, más a la derecha se ubicará

 Al modificar CH ¿qué bits específicos se modificaron para lograr cambios en el fondo y


color de los caracteres?
Los cuatro bits menos significativos intervienen en el color de fuente del caracter, mientras
que los cuatro bits más significativos intervienen en el color de fondo del caracter.

III. Investigación Complementaria

a. ¿Qué son los modos de direccionamiento?

Los modos de direccionamiento son las formas definidas en el microprocesador para ubicar un
dato en la memoria o en los registros internos a la hora de realizar una instrucción.

b. ¿Cuántos y cuáles modos de direccionamiento tiene el microprocesador 8086?

Los modos de direccionamiento definidos son los siguientes:


 Direccionamiento inmediato
 Direccionamiento directo
 Direccionamiento indirecto
 Direccionamiento mediante registro
 Direccionamiento relativo a registro
 Direccionamiento indexado

c. ¿Qué modos de direccionamiento posee la instrucción MOV?

La instrucción MOV puede ser direccionada de cualquier modo antes expuesto.


d. ¿Qué diferencias hay entre las instrucciones XCHG y la instrucción MOV?

Si se realizara la instrucción “MOV AX, BX”, sucedería que el dato de BX ha sido cargado a AX,
pero BX se mantiene tal cual como estaba. En caso de que se realizara la instrucción “XCHG AX,
BX”, sucedería que los datos de BX y AX se intercambian entre sí.

S-ar putea să vă placă și