sábado, 26 de septiembre de 2015

Curso Reparación - Realizar ejercicio

EJEMPLO 2
HACER UN PROGRAMA QUE MUESTRE EN TODA LA PANTALLA LA LETRA
A(MAYUSCULA).
Resolución de pantalla en modo texto es de (80 x 35 caracteres)
Código ASCII
La letra A mayúscula es igual a (65 decimal) y (41 en Hexadecimal)
Como debug solo usa el sistema hexadecimal usaremos A=41
Segmento de memoria de la pantalla: Esta es igual a B800 donde la letra A se encontraría
en la dirección lógica B800:0041
Ya tenemos las pautas necesaria para realizar el programa.
AAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA

Escribimos el siguiente código en el debug:
XXXX:0100 mov dx,B800 ;asignamos la dirección del segmento de pantalla en dx
XXXX:0103 mov es,dx ; y asigno al segmento extra el valor de dx
XXXX:0105 mov cx,7D0 ;Asigno el # de ciclos,es decir 80 x 35=2000 en hexa=7D0
XXXX:0108 mov si,0 ;inicializo si en 0 ,que se encargar de recorrer la letra por pantalla
XXXX:010B es: ;con esta instrucción me dirijo al segmento de pantalla
XXXX:010C mov byte ptr[si],41 ;asigno la letra A (41) de tipo byte y apunto a [si]
XXXX:010F add si,2 ;sumo si=si+2 para desplazar los 2000 caracteres por pantalla
XXXX:0112 loop 10B ;repite cx veces desde la dirección 10B y disminuye cx hasta ser=0
XXXX:0114 int 20 ; terminar el programa

Guardar el programa

Calcular cuanto pesa el programa restando la dirección final con la dirección de inicio por ejm: 0116 – 0100=16

Reservar memoria para el programa con el comando r cx donde será igual a 16
Asignar un nombre al programa con extensión .com con el comando n por ejm:

Escribir el programa en disco con el comando w
-r cx
cx 0000
: 16
-w
-q (Comando para salir del debug)
Auxiliar: Jorge Ignacio Arce Angelo 
EJECUTAR EL PROGRAMA
Simplemente para ejecutar el programa llamarlo por su nombre en este caso escribir c:\>letra

--
Javier A. Rodriguez

Ejercitación DEBUG - Curso reparación