Académique Documents
Professionnel Documents
Culture Documents
UNIDAD 1. Reporte.
Programas de la
unidad 1: sumas,
mostrar mensajes en
pantalla, pila y ms
Lenguajes de Interfaz
#12
1 p.m.
Temas
1. Programa 1: sumar 2 valores De cada programa se presente cdigo fuente
(listo para ser copiado y pegado, ya que est
2. Programa 2: mensaje en pantalla sin formato) y capturas de pantalla del
programa funcionando.
3. Programa 3: Ms mensajes en pantalla
Cdigo fuente
Figura 1a: El emulador emu8086 ejecutando el programa 1 paso a paso. Se han transferido valores 3h y 2h a los registros AH y
AL, respectivamente. Est a punto de sumar.
Figura 1b: Continuando la figura anterior (1a.) Se ha dado clic en Single step. Se han sumado los valores 1 y 2 (03h + 02h) y se
ha guardado en una variable denominada SUMA (suma = 05h).
Donde se imprime en pantalla
(emulada) el clsico hola mundo.
Programa 2.
Adems se vislumbra Para qu
jueves 16/feb/2017 son esas dichosas instrucciones
de inicializacin?
;Documentar no. Lista: 12 u1-1pm
;PROGRAMA 2. 16-feb-2017
.model small
.stack
.data
MENSAJE DB 'HOLA MARTE$'
.code
;INSTRUCCIONES DE INICIALIZACION
;mov ax, @data
;mov ds, ax
;-----------------
MOV AH, 9
LEA DX, MENSAJE ;obtiene direccion efectiva
INT 21H
; INSTRUCCIONES DE FINALIZACION
mov ax, 4c00h
int 21h
end
Cdigo fuente
HOLA MARTE$
Figura 2a: El emulador emu8086 ejecutando el programa 2 (no paso a paso). Se muestra un mensaje de error. Como se aprecia en la ventana de la derecha,
se repite muchsimas veces una instruccin ADD [BX Luego el emulador se detiene. El error est en que para mostrar mensajes por pantalla, con la INT
Figura 2b. Tras corregir la variable, que abarca un byte, denominada MENSAJE, a su forma correcta con un delimitador $ se
muestra un mensaje en pantalla (emulada).
!!
Figura 2c. Experimentando. Se prueba a marcar como comentarios las instrucciones de inicializacin, por lo tanto no se ejecutarn. Entonces se aprecia que
se imprime basura. Esto podra indicar que, se toman datos (nmeros) de la memoria de direcciones diferentes a las que seran especificadas con las
Programa 3. Programa NSA: muestra en
pantalla (emulada) algunos datos
personales.
jueves 16/feb/2017
;Documentar no. Lista: 12 u1-1pm
;PROGRAMA 3. 16-feb-2017
;Disena un programa en ensamblador que escriba tu noCtrol, nombre y edad.
.model small
.stack
.data
noCtrol db '13400404$'
nombre db 'oscar daniel ff$'
edad db 21
.code
; INSTRUCCIONES DE INICIALIZACION
mov ax, @data
mov ds, ax
;------------------
MOV AH, 9
LEA DX, noCtrol
INT 21H
MOV AH, 9
LEA DX, nombre
INT 21H
MOV AH, 9
LEA DX, edad
int 21H
;------------------
; INSTRUCCIONES DE FINALIZACION
mov ax, 4c00h
int 21h
end
; * para que es el "end"?
; * como puedo imprimir numeros?
; * identifica los parametros de
; las instrucciones de inicializacion/finalizacion
Cdigo fuente (favor de ver en pantalla completa o copiar desde la presentacin hacia un archivo de texto sin formato)
Figura 3. Haciendo uso del servicio 9 de la INT 21H se muestran en pantalla (emulada) algunos datos personales.
Donde se ejemplifica fsicamente
; Recuperar de la PILA
POP DX
MOV V[0], DL
MOV V[1], DH
POP DX
MOV V[2], DL
MOV V[3], DH
POP DX
MOV V[4], DL
MOV V[5], DH
; (INSTRUCCIONES DE FINALIZACION)
mov ax, 4c00h
int 21h
end
.model small
.stack
.data
msj db 'Contenido de la pila$'
v db 0,0,0,0,0,0,'$'
.code
; (INSTRUCCIONES DE INICIALIZACION)
mov ax, @data
mov ds, ax
;------------------
MOV AX, 'AB'
PUSH AX
; Recuperar de la PILA
POP DX
MOV V[0], DL
MOV V[1], DH
POP DX
MOV V[2], DL
MOV V[3], DH
POP DX
MOV V[4], DL
MOV V[5], DH
; (INSTRUCCIONES DE FINALIZACION)
mov ax, 4c00h
int 21h
end ;sigo sin saber que hace esto
<; "por cada push tiene que haber un pop"?
Cdigo fuente
Figura 5a. Qu banderas se modifican con 85-85=0? Las banderas ZF (Zero Flag) y PF (Parity Flag)
Figura 5b. Qu banderas se modifican con 82H+83H=105H? La bandera PF (Parity Flag)
Figura 5c. Qu banderas se modifican con 2-10 = -8? Las banderas CF (Carry Flag), SF (Sign Carry) y AF (Auxiliar-carry Flag)
FIN. Gracias por su atencin.