Tarea
La compilación hibrida es utilizada en lo que es conocida como programación hibrida (válgase la redundancia). La programación hibrida es utilizada en los casos en donde el código en ensamblador dificulta la estructuración del programa. La programación híbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguajeensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas más rápidos y eficientes.
Ejemplo: la red es el siguiente donde utilizamos código en ensamblador y código pascal. El siguiente código sirve para limpiar pantalla, está escrito en ensamblador dentro de una función en pascal, lo que es lo mismo a la función ClrScr en pascal.
Procedure
Limpia_Pantalla;
Assembler;Asm
Mov AX, 0600h
Mov BH, 18h
Mov CX, 0000h
Mov DX, 184Fh
Int 10h
End;
En fin podemos mezclar el código ensamblador con el código de cualquier otro lenguaje que admita este procedimiento. En pascal antes de escribir el código en ensamblador ay que poner Asm y al final de nuestro código End.[1].
4.2. Funciones ensamblador
Las directivas de programación hibrida son aquellas que nospermiten ejecutar los comandos de ensamblador en un lenguaje de alto nivel.
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 en código ensamblador. 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 procedimiento hibrido:
Procedure Limpia_Pantalla;
Assembler;
AsmMov AX,0600h ; procedimiento Clr Scr de la unidad CRT de TurboPascal
Mov BH,18h
MovCX,0000h
Mov DX,184Fh
Int 10h
End;
Ejemplo de un programa con un bloque de instrucciones en ensamblador:
El programa solicita que se introduzcan dos números, después calcula la suma por medio de la instrucción Add de ensamblador y finalmente imprime el resultado en la pantalla.; realiza la suma de dos cantidades enteras (N1 y N2) introducidas previamente por el usuario, después almacena elresultado en la variable Res y finalmente presenta el resultado en la pantalla.
Program hibrido;
Uses Crt;
VarN1,N2, Res :
integer;Begin
Writeln(“Introduce un número: “);
Readln(N1);
Writeln(“Introduce un número: “);
Readln(N2);AsmMov AX,N1;Add AX,N2;Mov Res,AXEnd;
Writeln(“El resultado de la suma es: “,Res);
Readln;End
INT 21H
La mayoría de servicios ó funciones del sistemaoperativo MS-DOS se obtienen a través dela interrupción software 21H. Es por esto que se le denomina DOS-API: DOS-APPLICATION-PROGRAM-INTERFACE La INT 21H está compuesta por un grupo defunciones. Cuando se accede a la INT 21H, hay que indicar el número de función quequeremos ejecutar. La llamada a la INT 21H se realizará como sigue:
INT 21H Función 01H
Entrada de Carácter con eco (ósalida)
INT 21H Función 02H
Salida de Carácter
INT 21H Función 05H
Envío de Carácter a la Impresora
INT 21H Función 06H
Envío de Carácter a la pantalla como símbolo
INT 21H Función 09H
Visualización de una cadena de caracteres
INT 21H Función 0AH
Leer cadena de símbolos desde teclado y su código se almacena al buffer
INT 21H Función 0BH
Comprobación del estado de la entradaINT 21H Función 0EH
Selección de disco
INT 21H Función 19H
Obtener disco actual
INT 21H Función 39H
Crear directorio
INT 21H Función 3AH
Borrar directorio
INT 21H Función 3BH
Establecer directorio actual
INT 21H Función 47H
Obtener directorio actual
INT 21H Función 3CH
Crear Fichero
INT 21H Función 3DH
Abrir Fichero
INT 21H Función 3EH
Cerrar...
Regístrate para leer el documento completo.