Programacion hibrida

Solo disponible en BuenasTareas
  • Páginas : 9 (2185 palabras )
  • Descarga(s) : 0
  • Publicado : 27 de noviembre de 2009
Leer documento completo
Vista previa del texto
*PROGRAMA*CION HIBRIDA
Directivas para compilación híbrida.
La programación en lenguaje ensamblador proporciona un mayor control sobre el hardware de la computadora, pero también dificulta la buena estructuración de los programas. La programación híbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todoesto con el fin escribir programas más rápidos y eficientes. Turbo Pascal permite escribir procedimientos y funciones en código ensamblador e incluirlas como parte de los programas en lenguaje Pascal; para esto, Turbo Pascal cuenta con dos palabras reservadas: Assembler y Asm. Assembler permite indicarle a Turbo Pascal que la rutina o procedimiento que se está escribiendo está totalmente escrita encódigo ensamblador. Ejemplo de un procedimiento híbrido:
Assembler;
Int 10h
End;
Por otro lado, Asm nos permite incluir bloques de instrucciones en lenguaje ensamblador en cualquier parte del programa sin necesidad de escribir procedimientos completos en ensamblador.
Ejemplo de un programa con un bloque de instrucciones en ensamblador:
{ Este programa muestra como se construyeun programa híbrido utilizando un bloque Asm… End; en Turbo Pascal. El programa solicita que se introduzcan dos número, después calcula la suma por medio de la instrucción Add de ensamblador y finalmente imprime el resultado en la pantalla.} Program hibrido;
Uses Crt;
Var
N1,N2,Res : integer;
Writeln(“Introduce un número: “);
Readln(N1);
Writeln(“Introduce un número: “);Readln(N2);
Mov AX,N1;
Add AX,N2;
End;
Writeln(“El resultado de la suma es: “,Res);
Readln;
End.
El programa del listado 24 realiza la suma de dos cantidades enteras (N1 y N2) introducidas previamente por el usuario, después almacena el resultado en la variable Res y finalmente presenta el resultado en la pantalla.
El lenguaje ensamblador no cuenta con funciones de entrada ysalida formateada, por lo cual es muy complicado escribir programas que sean interactivos, es decir, programas que soliciten información o datos al usuario. Es aquí donde podemos explotar la facilidad de la programación híbrida, en el programa anterior se utilizan las funciones Readln y Writeln para obtener y presentar información al usuario y dejamos los cálculos para las rutinas en ensamblador.En el siguiente listado nos muestra la forma de escribir programas completos utilizando procedimientos híbridos. {Este programa solicita al usuario que presione alguna tecla, cuando la tecla es presionada, ésta se utiliza para rellenar la pantalla.
El programa termina cuando se presiona la tecla enter.
El programa utiliza tres procedimientos:
Limpia_Pantalla: Este se encarga de borrar lapantalla
Cursor_XY: Este procedimiento reemplaza al Goto XY de Pascal
Imprime_Car: Este procedimiento imprime en pantalla el carácter que se le pasa como parámetro. }
Definición De Bloques.
NAME nombre_modulo_objeto: indica el nombre del módulo objeto. Si no se incluye NAME, se tomará de la directiva TITLE o, en su defecto, del nombre del propio fichero fuente.
GROUPsegmento1, segmento2,... permite agrupar dos o más segmentos lógicos en uno sólo de no más de 64 Kb totales (ojo: el ensamblador no comprueba este extremo, aunque sí el enlazador). Ejemplo:
Cuando se accede a un dato definido en algún segmento de un grupo y se emplea el operador OFFSET es preciso indicar el nombre del grupo como prefijo, de lo contrario el ensamblador no generará el desplazamientocorrecto ¡ni emitirá errores!:
MOV AX,dato ; ¡incorrecto!
MOV AX,supersegmento:dato ; correcto
LABEL: Permite referenciar un símbolo con otro nombre, siendo factible redefinir el tipo. La sintaxis es: nombre LABEL tipo (tipo = BYTE, WORD, DWORD, NEAR o FAR). Ejemplo: En el ejemplo, con MOV AX,palabra se accederá a ambos bytes a la vez (el empleo de MOV AX,byte_bajo daría...
tracking img