Está en la página 1de 2

UAGRM 1 EX.

PARCIAL 18-mayo-2016
INF221 “SA” LENGUAJE ENSAMBLADOR Sem/Año: 1/2016

Condiciones iniciales: EAX, EBX, ECX, EDX, ESI, EDI = 0x0. Los datos
inicializados del segmento de datos comienzan en la dirección de memoria
0x00002000.

1.-) (20 puntos) Cuáles son los valores DECIMALES de cada variable de
enteros almacenados en memoria, si OllyDbg muestra los siguientes valores
hexadecimales a partir de la dirección de memoria 0x2000.

[00002000] F0 FF FF FF 25 7F FF FF 00 51 00 00

a) Si en los 4(cuatro) primeros bytes se encuentra almacenado el número a


con signo “CS”, cual es el valor de dicho número a? (respuesta en decimal).
b) Si en el siguiente 1 byte se encuentra almacenado el número b sin signo
“SS”, cual es el valor de dicho número b? (respuesta en decimal).
c) Si en los siguientes 2(dos) bytes se encuentra almacenado el número c
con signo “CS”, cual es el valor de dicho número c? (respuesta en decimal).
d) Si en el siguiente byte se encuentra almacenado un “carácter” d de que
carácter se trata? (especificar si es MAYÚSCULA o minúscula).

2.-) (40 puntos). Para el siguiente fragmento de programa y con los mismos
datos en memoria de la pregunta 1, donde dichos datos inicializados
comienzan en la dirección de memoria 0x2000.

MOV EAX, 0X2000


MOV ECX, EAX
MOV DL, [EAX+EBX+2]
MOV ESI, 2
XOR DL, 0XFA
ADD ECX, 4
MOV EBX, EAX
MOV AL, [EBX+4]
AND AL, 0X0F
IMUL DL
SUB byte [EBX+ESI*2+1], AL
MOV AL, [ECX-2]
NEG AL
MOV [EBX+3], AL
RET

a) Encontrar el valor que contendrán los registros AL, EBX, ECX, DL, ESI
al finalizar el programa.
b) Mostrar las posiciones (direcciones) de memoria cuyo contenido cambia
y los nuevos valores almacenados.

3.-) (40 puntos) Para el siguiente programa:

segment .data
a DB "YS", 0X5F, -111, 254, ; "YS" -->> MAYUSCULAS
segment .text
_main:
MOV EDX, a
MOV BL, [a+3]
MOV AL, [EDX+1]
AND AL, 0x0F
MOV CH, [a+4]
CMP AL, 5
JS EE1
JO EE2
JMP EE3
MUL CH
EE1: JG EE3
SAR BL, 1
JC EE4
NEG BL
EE2: MOV EBX, 2
JLE EE4
EE3: MOV EBX, 1
EE4: XOR CH, 0xFD
SAL AL, 2
IDIV CH
RET

a) Encontrar el valor que contendrán los registros AL, BL, CH, EDX al finalizar
el programa.
b) Mostrar los valores que contendrán los datos (bytes) en memoria al finalizar
el programa. (No olvidar especificar las direcciones de memoria).

Respuestas numéricas problemas 2) y 3) en “HEXADECIMAL”.

NOTA: No está permitido el uso de: apuntes, libros, calculadoras, celulares,


gorras, etc. Tiempo estimado para resolver el examen: 90 minutos. Colocar en
cada hoja de respuestas el Número de Registro, Apellidos y Nombres y C.I.

Si se encuentra a un estudiante con un celular el examen será


automáticamente “anulado”.

REGISTRO:________________
NOMBRES:______________________________________
FIRMA:_______________________

corrado vallet