Examen Parcial 2 Vallet
Examen Parcial 2 Vallet
Examen Parcial 2 Vallet
INF221 SA
2 EX. PARCIAL
LENGUAJE ENSAMBLADOR
29-mayo-2009
Sem/Ao: 1/2009
.MODEL SMALL
.STACK 64
.DATA
datos DB 21H, 45H, 00H, 1FH, 0ABH, 0CDH
.CODE
inicio:
MOV AX, @data
MOV DS, AX
XOR AX, AX
MOV BX, OFFSET datos
MOV AH, [BX+1]
MOV CL, [BX+3]
CMP AH, CL
JB etiqueta1
SUB CL, AH
MOV DL, AH
JMP SHORT etiqueta2
etiqueta1:
SUB CL, AH
MOV DL, CL
etiqueta2:
MOV [BX+4], DL
NOP
MOV AX, 4C00h
INT 21h
END inicio
a) Encontrar el valor que contendrn los registros AX, BX, CX y DX despus de la
ejecucin de la instruccin NOP.
b) Mostrar los valores que contendr el segmento de datos despus de la ejecucin de la
instruccin NOP.
2.-) (18 PUNTOS) Para el siguiente programa:
.MODEL SMALL
.STACK 64
.DATA
tabla DB 'KLMNOP12345'
letra
DB 'S' ; mayscula
numero DB '7'
.CODE
inicio:
MOV AX, @data
MOV DS, AX
XOR AX, AX
MOV BX, 0
MOV BL, letra
MOV CL, 4
SHR BL, CL
MOV DL, tabla[BX]
NOP
;primer 1 NOP
MOV BL, numero
AND BL, 00001111B
MOV AL, tabla[BX]
NOP
;segundo 2 NOP
MOV AX, 4C00H
INT 21H
END inicio
Encontrar el valor que contendrn los registros AX, BX y DX despus de la ejecucin a) de la
primera instruccin NOP (1ra. NOP) y b) la segunda instruccin NOP (2da. NOP).
3.-) (16 PUNTOS) Encontrar el valor que contendrn los registros AX y BX despus de la
ejecucin de a) la primera instruccin NOP (1ra. NOP) y b) la segunda instruccin NOP (2da.
NOP).
byte1
byte2
.MODEL SMALL
.STACK 64
.DATA
DB 17H
DB 5H
.CODE
inicio:
MOV AX, @data
MOV DS, AX
MOV BH, byte2
XOR AH, AH
MOV AL, byte1
DIV BYTE2
NOP
;primera 1ra NOP
XOR AH, AH
MOV BH, byte2
MOV AL, byte1
MUL BH
NOP
;segunda 2da NOP
MOV AX,4C00H
INT 21H
END inicio
4.-) (25 PUNTOS) A continuacin se presenta el .LST, correspondiente al cdigo de un
programa fuente, tal como aparece despus de ensamblado el mismo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0000
0000
0000
0000
0000
0000
0003
0005
0008
0009
000C
000D
0010
0011
0014
.MODEL SMALL
.STACK 64
.DATA
.CODE
B8 0000s
8E D8
B8 5758
50
B8 5354
50
E8 0006
90
B8 4C00
CD 21
0016
0016 55
inicio:
MOV AX, @data
MOV DS, AX
MOV AX, 'WX'
PUSH
AX
MOV AX, 'ST'
PUSH
AX
CALL subr
NOP
;;2da. NOP
MOV AX, 4C00H
INT 21H
;----------------------------------------------subr PROC
PUSH
BP
19
20
21
22
23
24
25
26
27
28
29
30
31
0017
0019
001A
001D
0020
0023
0026
0028
002A
002C
002D
0030
8B EC
90
8A 5E 07
8A 7E 05
8A 56 06
8A 76 04
2A F3
02 FA
8B E5
5D
C2 0004
MOV BP, SP
NOP
;;1ra NOP
MOV BL, [BP+7]
MOV BH, [BP+5]
MOV DL, [BP+6]
MOV DH, [BP+4]
SUB DH, BL
ADD BH, DL
MOV SP, BP
POP BP
RET 4
subr ENDP
END inicio