Professional Documents
Culture Documents
INF221 SA
2 EX. PARCIAL
PROGRAMACION ENSAMBLADOR
7-06-2006
Sem/Ao:1/2006
0000
0000
0000
0000
0000
0000
0003
0005
0008
000B
000E
000F
0010
0011
0014
0017
0018
001B
.MODEL SMALL
.STACK 64
.DATA
.CODE
B8 0000s
8E D8
B8 000A
BB 0014
B9 0003
50
53
51
E8 0009
83 C4 06
90
B8 4C00
CD 21
inicio:
MOV AX, @data
MOV DS, AX
mov ax,10
mov bx,20
mov cx,3
push ax
push bx
push cx
call sub1
add sp, 6
NOP
MOV AX, 4C00H
INT 21H
19
20
21
22
23
24
25
26
27
28
29
30
31
001D
001D
001E
0020
0023
0026
0029
002B
002D
002F
0030
0031
55
8B EC
8B 46 08
8B 5E 06
8B 4E 04
03 C3
F7 F1
8B D0
5D
C3
sub1 PROC
push bp
mov bp,sp
mov ax,[bp+8]
mov bx,[bp+6]
mov cx,[bp+4]
add ax,bx
div cx
mov dx,ax
pop bp
ret
sub1 ENDP
END inicio
dato1
dato2
dato3
.MODEL SMALL
.STACK 64
.DATA
DB
"NJPW"
DW
4
DB
"GDUX"
.CODE
inicio:
MOV AX, @data
MOV DS, AX
MOV CX, dato2
MOV SI, 0
L1:
MOV AX, WORD PTR dato1[SI]
PUSH AX
INC SI
LOOP L1
NOP ;;;; primer NOP (1er NOP)
MOV CX, dato2
MOV SI, 0
L2:
POP AX
MOV dato3[si], AL
INC SI
LOOP L2
NOP ;;;; segundo NOP (2do NOP)
MOV AX, 4C00H
INT 21H
END inicio
a) Mostrar el contenido del rea de stack (pila) de la memoria y de los registros AX, SI y SP,
despus de ejecutada la primera instruccin de NOP (1ra NOP).
b) Mostrar ahora el contenido de la misma rea de stack (pila) de la memoria y de los
registros AX, SI y SP, despus de ejecutarse la segunda instruccin NOP (2da NOP).
c) Mostrar los valores de las variables dato1, dato2 y dato3 en el segmento de datos, despus
que termina la ejecucin del programa.
4.-) Encontrar el valor que contendrn los registros AX, CX y DI despus de la ejecucin de la
instruccin NOP.
MODEL SMALL
.STACK 64H
.DATA
str1
DB 'KDHERTPSHCBT'
.CODE
inicio PROC FAR
MOV AX, @data
MOV DS, AX
MOV ES, AX
CLD
XOR AX, AX
MOV CX, 10
LEA DI, str1
MOV AL, 52H
REPNE SCASB
JZ L1
L2:
MOV AL, 99H
JMP L3
L1:
MOV AL, 52H
DEC DI
L3:
NOP
MOV AX, 4C00H
INT 21H
inicio ENDP
END inicio
5.-) Escribir un programa a fin de evaluar el polinomio:
y = a.x2 + b.x + c
Considerar para el programa los siguientes valores:
a= - 4, b=3, c= -2, x= 2
Los cuales debern estar definidos a nivel de byte.
Recordar que todas las respuestas deben ser dadas en HEXADECIMAL.
Corrado Vallet