Computacion

Solo disponible en BuenasTareas
  • Páginas : 6 (1356 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de noviembre de 2010
Leer documento completo
Vista previa del texto
Física Computacional

Departamento de Física | Escuela de Ciencias Exactas y Naturales Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario

Unidad Nº3: Lenguaje Assembler Programa DEBUG El programa DEBUG es una aplicación que viene incluida con el sistema operativo DOS y permite, entre otras cosas, generar código en Lenguaje Assembler. Interrupciones Unainterrupción es una señal (producida por hardware o software) que hace que la CPU suspenda momentáneamente la tarea que está realizando y le transfiera el control a un programa especial que se encarga de tratar esa interrupción. Existen muchas interrupciones, cada una de ellas identificadas con un número. Las posiciones de memoria en la que comienzan cada uno de los programas asociados a lasinterrupciones se guardan en una estructura denominada TABLA DE VECTORES DE INTERRUPCIONES que se localiza al comienzo de la memoria (1024 bytes iniciales de la memoria).

Tabla de vectores de interrupciones Número de Interrupción 01 02 ... N Ubicación en memoria de los programas asociados a cada interrupción XXXX YYYY ... ZZZZ

Cuando en un programa se desea llamar a una determinada interrupción sedebe ejecutar la instrucción INT. Su sintaxis es INT número de interrupción, donde el número es obligatorio y tiene a lo sumo una longitud de 2 bytes.

La ejecución de una interrupción puede necesitar parámetros (datos para la ejecución de la interrupción), los que deben colocarse en los Registros de Trabajo.

1 Física Computacional | www.fceia.unr.edu.ar/~fisicomp Hugo Navone :::hnavone@ifir.edu.ar Laboratorio de Física Computacional | Departamento de Física | ECEyN | FCEIyA | UNR

Algunas Interrupciones Interrupción 20h: Terminación del programa Su función es informar al sistema operativo que el programa ha terminado y que puede liberar la memoria que ocupaba. Interrupción 21h: Servicios del DOS Permite acceder a la mayoría de los servicios del sistema operativo DOS. Cada uno deestos servicios se identifica por un número. • INT 21h – Servicio 02h: Salida de caracteres Este servicio envía el carácter cuyo código está almacenado en el registro DL a la unidad de salida standard. Al ejecutar la instrucción INT 21h, el registro AH debe contener el valor 02h (número del servicio).

¿Qué es el registro AH? Todos los registros de trabajo tienen 2 bytes y como el procesador debeser capaz de manejar unidades de 1 byte de longitud, los registros se dividen en dos partes: byte alto (los dos primeros dígitos hexadecimales) y byte bajo (los dos dígitos siguientes). Con AX nos referimos a la palabra completa (16 bits), con AH nos referimos al byte alto y con AL al byte bajo. AX=4D1A AH 0100 4 1101 D 0001 1 AL 1010 A

Como ejemplo vamos a implementar un código en Assemblerpara imprimir un carácter en pantalla, usando las interrupciones descriptas.

Ensamblado del Código con el DEBUG Para implementar un código en Lenguaje Assembler es necesario usar el comando A (Assemble, Ensamblar) del DEBUG. -A posición de memoria a partir de la cual se colocan las instrucciones Por otra parte, es necesario introducir otra instrucción en lenguaje ensamblador que nos simplifiquela introducción de valores en los registros. Dicha instrucción es MOV. Para desarrollar nuestro ejemplo es necesario cargar el valor 02h en el registro AH, como sigue: MOV AH,02 Ejercicio U3-1: Usando el programa DEBUG desarrollar un código en Assembler que imprima el carácter * en pantalla. Almacenar el código ejecutable de dicho programa en el disco.
2 Física Computacional |www.fceia.unr.edu.ar/~fisicomp Hugo Navone ::: hnavone@ifir.edu.ar Laboratorio de Física Computacional | Departamento de Física | ECEyN | FCEIyA | UNR

C:\>DEBUG -A 100 1669:0100 1669:0102 1669:0104 1669:0106 1669:0108 PSP Longitud: 256 bytes

MOV AH,02 MOV DL,2A INT 21 INT 20 Oprimir para finalizar el ingreso del código Código de Programa *.COM + DATOS 100h Máximo 65536-258 Pila Mínimo 2 bytes

El PSP es...
tracking img