UNIVERSIDAD MARIANO GÁLVEZ DE GUATEMALA
Facultad de Ingeniería en sistemas de información y ciencias de la computación
Ingeniería en sistemas de información y ciencias de la computación
Arquitectura de computadoras II
Catedrático ing. Tatiana Vallejo
Laboratorio 2
Instrucciones básicas
Carné: Nombre:
0901-21-506 Ismar Leonel Cortéz Sanchez
0901-21-843 Marco Alejandro Monroy Rousselin
0901-21-1278 Gabriela Alejandra Suc Gómez
Guatemala, 30 de agosto de 2024
Universidad Mariano Gálvez de Guatemala
1
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
Hoja de Actividades – Parte 2
Emule el programa y ejecútelo paso a paso. No se preocupe si cree que el programa se
quedó enciclado en la parte de asignación del arreglo2, recuerde que está reservando 12
posiciones de memoria, ahí por lo menos necesita 12 pasos para reservar la memoria.
Recuerde que cuando la instrucción está resaltada en amarillo significa que el IP está
apuntando a ella, significa que la instrucción resaltada en amarillo será la próxima en ser
ejecutada.
Parte 1
Asignación de Segmentos.
Antes de realizar la emulación por pasos en la asignación de segmentos escriba en el
siguiente cuadro los datos faltantes de acuerdo a los registros de emulación
Registro Contenido Registro Contenido
AX 0000h CS 0700h
BX 0000h SS 0700h
CX 00C1h DS 0700h
DX 0000h ES 0700h
BP 0000h IP 0100h
SI 0000h SP FFFE
DI 00000h
Realice todo el proceso de asignación de segmentos y verifique que tenga estos valores.
Registro Contenido Registro Contenido
DS 3000 SS A000h
CS 0700 ES 8000h
Si los registros mencionados no tienen estos valores, verifique que su código no se salte la
asignación MOV AX,3000h. Si se la salta cambie de posición las variables, por ejemplo,
escriba de último la asignación NUMERO1 DB 75; esto evitará que se salte la instrucción.
Parte 2
Manipulación de datos y análisis de contenidos
Para esto necesita ejecutar las instrucciones paso a paso y debe responder las preguntas
que se le plantean. Responda las preguntas asociadas después de ejecutar cada
instrucción.
Universidad Mariano Gálvez de Guatemala
2
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV CX, AX
o ¿Cambió el contenido de CX? El contenido de CX es ahora de 8000h
o ¿Qué valor tiene CH? 80h
o ¿Qué valor tiene CL? 00h
• ADD CH, 25h
o ¿Qué valor tiene CH ahora? A5h
• MOV DI,1
o ¿Qué valor tiene DI ahora? 0001h
• MOV [DI], CH
Abra su mapa de memoria (Botón AUX) y coloque en el espacio de dirección la
combinación 3000:0001. El primer valor que le muestre el mapa luego de actualizar
(UPDATE) es la posición 3000:0001 (esta es la dirección efectiva del movimiento, la
dirección inicial del segmento de datos con el cero agregado + el desplazamiento
indicado por DI)
o ¿Qué valor hexadecimal contiene la dirección? A5h
o ¿Coincide con el contenido de CH? Si coincide
o ¿A qué símbolo ASCII corresponde el dato? Ñ
• INC DI
o ¿Qué valor tiene? 0002h
• PUSH CX
Abra la pila (botón STACK), vea la información almacenada y vea sus registros SS y
SP. EL registro SS debería de contener el número A000 y SP debería de contener FFF4,
busque en la pila la combinación SS:SP, que en este caso sería A000:FFF4.
Si sus registros SS y SP no contienen los datos que le indico, entonces busque en el
mapa de pila la combinación SS:SP de los datos que usted tiene.
Universidad Mariano Gálvez de Guatemala
3
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV DX, 1234H
o ¿Qué valor hay? 1234h
• MOV SI, 12o
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AX 8000h 32,768
BX 0000h 0
CX A500h 42240
DX 1234h 4660
BP 0000h 0
SI 000Ah 10
DI 0002h 2
Universidad Mariano Gálvez de Guatemala
4
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• SUB AX,DX
Al valor decimal de AX réstele el valor decimal de DX, luego convierta el resultado a
hexadecimal
o ¿Cuánto es AX menos DX en decimales? 28108
o ¿Qué valor hexadecimal contiene AX? 6DCCh
o ¿El nuevo valor de AX coincide con el hexadecimal
equivalente al resultado de la resta? Si coincide
• MOV ES:[SI], AX
Abra nuevamente el mapa de memoria y ahora busque la combinación ES:SI, es
decir 8000:000A. Esto lo lleva a la dirección efectiva 8000A (ES+DI), puede verificar la
dirección haciendo clic sobre el primer dato que le aparece.
o ¿Coincide el contenido de 8000A con el contenido de AL? Si coincide, es de CC
o ¿Cuál es el contenido de AL? Es CC
o ¿Cuál es el contenido de la dirección efectiva 8000B? Es 6D
o ¿Coincide con el contenido de AH? Si, es de 6D
(Formato Little Endian, la parte menos significativa se va a la posición
direccionada y la otra parte se va a la siguiente posición más significativa)
•
MOV BL,26h
Llene el siguiente cuadro
Hexadecimal Decimal con signo Decimal sin signo Carácter ASCII Octal Binario
26 38 38 & 46 00100110
•
NEG BL
Llene el siguiente cuadro
Contenido Decimal con Decimal sin Carácter Octal Binario
de BL en signo signo ASCII
Hexadecimal
DA -38 218 ┌ 332 11011010
o ¿El contenido actual de BL corresponde al negativo del anterior? Si, es de -38
o Ahora verifique las banderas. ¿Se activó la bandera de signo? Si se activó en 1 la SF
Universidad Mariano Gálvez de Guatemala
5
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV BX,26h
Llene el siguiente cuadro. Recuerde que BX tiene 16 bits, para decimal sin signo los 16
bits representan al número, para decimal con signo, el bit más significativo es elsigno
y los otros 15 bits el número. Si el signo es negativo, a los 15 bits restantes deberá
calcularle su complemento a 2 para saber de qué número se trata
Hexadecimal Decimal con signo Decimal sin signo
0026h 38 38
Universidad Mariano Gálvez de Guatemala
6
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• NEG BX
Llene el siguiente cuadro. Recuerde que BX tiene 16 bits, para decimal sin signo los 16
bits representan al número, para decimal con signo, el bit más significativo es elsigno
y los otros 15 bits el número. Si el signo es negativo, a los 15 bits restantes deberá
calcularle su complemento a 2 para saber de qué número se trata
Hexadecimal Decimal con signo Decimal sin signo
FFDA -38 65498
• NEG BX
¿Qué dato tiene ahora el registro BX? Ahora tiene 0026h
• MOV AX, 3516H
• PUSH AX
Verifique la pila, ¿está el contenido de AX en la pila? Si está en la pila, en A000:FFFA
• MOV AX, 205H
• MOV CL, 10
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AL 05h 5
AH 02h 2
BL 26h 38
BH 00h 0
Universidad Mariano Gálvez de Guatemala
7
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MUL BL
Multiplique el decimal AL con el decimal BL. Convierta el resultado a hexadecimal.
El resultado es de 00BEh
¿Corresponde el resultado de la multiplicación con el contenido de AL? Si, de BE
¿El contenido de AH es ahora 00? Si es 00h
Ahora verifique las banderas,
¿están todas apagadas a excepción de AF e IF? Así es, solo AF e IF
• MOV [DI],AL
• MOV [DI+1], AH
Abra su mapa de memoria y verifique que la dirección 3000:0002 contiene lo mismo
que AL y que la dirección siguiente 3000:0003 contiene los mismo que AH
Sí contiene AL
Universidad Mariano Gálvez de Guatemala
8
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
Sí contiene AH, es decir 00h
• MUL BX
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal
Registro Contenido Equivalente decimal
AX 00BE 190
BX 0026h 38
DX 0000h 0
Multiplique el decimal AX con el decimal BX. Convierta el resultado a hexadecimal.
El resultado en decimal de la multiplicación es de 7220
¿Corresponde el resultado de la multiplicación con el contenido de AX? Si, es de 1C34
¿El resultado de la multiplicación (en decimales) es mayor que 65535? No, es menor
Si el resultado es menor, ahora DX debería tener almacenado un 0000h, si es mayor
debería de tener un número diferente de 0000h
Es menor y tiene un 0000h
Universidad Mariano Gálvez de Guatemala
9
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV [SI], AX
• POP AX
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AL 16h 21
AH 35h 53
CL 0Ah 10
CH A5h (-95) (165)
Parte 3.
¿Dónde están los datos?
• MOV BX, OFFSET NUMERO1
Busque en el mapa de memoria, en la posición CS:BX.
¿Está ahí el número1? (Un 75 decimal equivale a un 4BH). Si está ahí
¿Qué función cree que realiza la directiva OFFSET? Offset es un operador que obtiene la
dirección de desplazamiento (offset) de la variable numero1 dentro del segmento de
datos. Esta dirección de desplazamiento es un valor relativo al inicio del segmento de
datos.
Ahora busque en el mapa de memoria la posición DS:BX
¿Está ahí el número1? (Un 75 decimal equivale a un 4BH). No, solo hay 00h
No debería estar ahí.
Universidad Mariano Gálvez de Guatemala
10
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
Ahora busque en el mapa de memoria la dirección efectiva 30000
¿Está ahí el número1? (Un 75 decimal equivale a un 4BH). No se encuentra
ahí
Tampoco debería estar acá
• MOV AH, CS:[BX]
• MOV [00H],AH
Abra el mapa de memoria nuevamente y vuelva a buscar la dirección efectiva
30000, ahora si debería estar ahí el número 4B. Acá lo que se hizo fue copiar de la
dirección original al segmento de datos.
Universidad Mariano Gálvez de Guatemala
11
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV AL, CS:[BX+01H]
• MOV [01H],AL
• MOV SI,0AH
• MOV DX, OFFSET ARREGLO1
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AX 4BA8h 19368
BX 0180h 384
CX A50A 42250
DX 0000h 0
BP 0000h 0
SI 000Ah 10
DI 01BAh 442
Recuerde que los datos de arreglo1 son 11h, 22h, 33h, 44h, 55h
Ahora vea el contenido del mapa de memoria en la posición CS:DI.
¿Puede ver los datos del arreglo1 empezando en esa posición? Si, se pueden ver
Universidad Mariano Gálvez de Guatemala
12
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
Y vea el mapa de memoria en la posición 3000:0000. Véalo en forma de tabla.
De acuerdo con el mapa de memoria
La posición Contiene La posición contiene
30000 4B 30008 00
30001 A8 30009 00
30002 6E 3000A 26
30003 00 3000B DE
30004 00 3000C 00
30005 00 3000D 00
30006 00 3000E 00
30007 00 3000F 00
Aparece de la siguiente manera con unos cambios:
Universidad Mariano Gálvez de Guatemala
13
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV BL, CS:[DI]
• MOV [SI],BL
• INC DI
• DEC SI
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AX 4BA8h 19368
BX 111h 273
CX A50Ah (-23286) (42250)
DX 0h 0
BP 0h 0
SI 9h 9
DI 1BBh 443
• MOV BL, CS:[DI]
• MOV [SI],BL
• INC DI
• DEC SI
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AX 4BA8h 19368
BX 122h 290
CX A50Ah (-23286) (42250)
DX 0h 0
BP 0h 0
SI 8h 8
DI 1BCh 444
De acuerdo al mapa de memoria
La posición Contiene La posición contiene
30000 4B 30008 00
30001 A8 30009 22
30002 BE 3000A 11
30003 00 3000B 1C
30004 00 3000C 00
30005 00 3000D 00
30006 00 3000E 00
30007 00 3000F 00
Universidad Mariano Gálvez de Guatemala
14
Facultad de Ingeniería en Sistemas de Información y
Ciencias de La computación,
Ingeniería en Sistemas – Jornada Matutina
• MOV BL, CS:[DI]
• MOV [SI],BL
• INC DI
• DEC SI
• MOV BL, CS:[DI]
• MOV [SI],BL
• INC DI
• DEC SI
• MOV BL, CS:[DI]
• MOV [SI],BL
• INC DI
• DEC SI
Ahora llene este cuadro con el contenido hexadecimal faltante, luego escriba su
equivalente decimal.
Registro Contenido Equivalente decimal
AX 4BA8h 19368
BX 155h 341
CX A50Ah (-23286) (42250)
DX 0h 0
BP 0h 0
SI 5h 5
DI 1BFh 447
De acuerdo al mapa de memoria
La posición Contiene La posición contiene
30000 4B 30008 33
30001 A8 30009 22
30002 BE 3000A 11
30003 00 3000B 1C
30004 00 3000C 00
30005 00 3000D 00
30006 55 3000E 00
30007 44 3000F 00
¿Qué función realiza el código desde la instrucción MOV DI, OFFSET ARREGLO1?
Después de esta instrucción, el registro DI contiene la dirección de memoria relativa de
ARREGLO1. Este valor en DI se puede usar para acceder a los elementos del arreglo ARREGLO1
de forma indirecta. Por ejemplo, podrías usar DI para recorrer el arreglo, leer sus valores, o
modificarlo mediante instrucciones de manipulación de memoria que trabajan con el registro DI.
En resumen, el código está preparando el registro DI para trabajar con la dirección de memoria
del arreglo ARREGLO1, lo que es útil para operaciones como recorrer el arreglo o manipular sus
datos.