Está en la página 1de 4

UAGRM

INF221 SA

EXAMEN FINAL
LENGUAJE ENSAMBLADOR

24- 11 - 2006
Sem/Ao: 2/2006

Todos los problemas para el microprocesador INTEL8086.


Valores
iniciales
de
los
registros
son
los
siguientes:
BX=CX=DX=SI=DI=0000H, SP= 0040H y BP= 0000H.
1-) Encontrar el valor que contendrn los registros BX, CX
ejecucin de la instruccin NOP.

AX=1571H,
despus de la

.MODEL SMALL
.STACK 64
.DATA
datos DB 14H, 0FH, 05H, 00H, 03H, 0C4H, 63H, 39H, 77H, 0FH
dim
DW 10
.CODE
inicio:
MOV AX, @data
MOV DS, AX
XOR BX, BX
XOR CX, CX
otro: CMP datos[BX], 05H
JNAE pasa
INC CX
pasa: INC BX
CMP BX, dim
JB otro
NOP
MOV AX, 4C00H
INT 21H
END inicio
2.-) Encontrar el valor que contendrn los registros AX, CX, DX y DI, despus de
la ejecucin de la instruccin NOP. Si existiera alguna interaccin entre el teclado
y/o la pantalla especificar los resultados.
.MODEL SMALL
.STACK 64
.DATA
array DB 'ABCDEFGHIJ'
.CODE
inicio:
MOV AX, @data
MOV DS, AX
MOV ES, AX
CLD
LEA DI, array
MOV CX, 10
MOV AL, 43H
LL3: SCASB
JE LL1
LOOP LL3
MOV DL, 4EH
MOV AH, 02H
INT 21H
JMP LL2
LL1: SUB DI, 1

MOV DL, 53H


MOV AH, 02H
INT 21H
LL2: NOP
MOV AX, 4C00H
INT 21H
END inicio
3.-) Encontrar el valor que contendrn los registros: CX, SI y SP despus de la
ejecucin de la instruccin NOP.
.MODEL SMALL
.STACK 64
.DATA
.CODE
INICIO:
MOV AX, @data
MOV DS, AX
MOV SI, 0
MOV CX, 4H
L2: PUSH CX
MOV CX, 2H
L1: DEC CX
INC SI
LOOP L1
POP CX
LOOP L2
NOP
MOV AX, 4C00H
INT 21H
END INICIO
4.-) a) Encontrar el valor de los registros: AX y SI, despus de la ejecucin de la
instruccin NOP.
.MODEL SMALL
.STACK 40H
.DATA
DB
5, 'A', 45H, 10001101B
tabla
DW
15, 'DK', '27', 4F5H
.CODE
inicio:
MOV AX,@DATA
MOV DS, AX
MOV AX, @STACK
MOV SS, AX
XOR SI, SI
MOV AX, [SI]
AND AX, 00FFH
MOV SI, AX
MOV AL, BYTE PTR tabla[SI]
SHL AL, 1
NOP
MOV AX, 4C00H
INT 21H
END inicio
b) Mostrar el contenido del rea de datos de la memoria (hexadecimal).

5.-) Encontrar el valor que contendrn los registros AX y DX despus de la


ejecucin de la primer y de la segunda instruccin NOP.
.MODEL SMALL
.STACK 64
.DATA
byte1 DB 13H
byte2 DB 5H
word1 DW 40H
.CODE
INICIO:
MOV AX, @data
MOV DS, AX
MOV AL, byte1
MUL byte2
NOP
;primer NOP
MOV AL, byte1
SUB AH, AH
IMUL word1
NOP
;segundo NOP
MOV AX,4C00H
INT 21H
END INICIO
6.-) Mostrar los valores que contendr el rea de stack despus de la ejecucin de
la instruccin CALL subr y el valor que contendrn los registros: AX, BX, DX, BP
y SP despus de la ejecucin de la instruccin NOP. Se muestra el programa .LST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

0000
0000
0000
0000
0000
0000
0003
0005
0008
0009
000C
000D
0010
0011
0014
0016
0016
0018
001B
001E
0021
0024
0027

.MODEL SMALL
.STACK 64
.DATA
.CODE
inicio:
B8 0000s
8E D8
B8 4A4B
50
B8 5253
50
E8 0006
90
B8 4C00
CD 21
8B
8A
8A
8A
8A
C2

EC
5E 05
7E 03
56 04
76 02
0004

MOV AX, @data


MOV DS, AX
MOV AX, 'JK'
PUSH AX
MOV AX, 'RS'
PUSH AX
CALL subr
NOP
MOV AX, 4C00H
INT 21H
subr PROC
MOV BP, SP
MOV BL, [BP+5]
MOV BH, [BP+3]
MOV DL, [BP+4]
MOV DH, [BP+2]
RET 4
subr ENDP
ENDinicio

NOTA: Todas las respuestas deben ser dadas en HEXADECIMAL.


BUENA SUERTE!!!!!

Corrado Vallet