Musica

Solo disponible en BuenasTareas
  • Páginas : 3 (662 palabras )
  • Descarga(s) : 4
  • Publicado : 7 de diciembre de 2009
Leer documento completo
Vista previa del texto
Programación híbrida

Pascal y ensamblador
Como ya se mencionó, la programación en lenguaje ensamblador proporciona un mayor control sobre el hardware de la computadora, pero también dificulta labuena 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.
En esta sección se mostrará la forma para crear programas híbridos utilizando el lenguaje ensamblador y Turbo Pascal.
Turbo Pascalpermite 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.
Ejemplo de un procedimiento híbrido:
ProcedureLimpia_Pantalla;
Assembler;
Asm
Mov AX,0600h
Mov BH,18h
Mov CX,0000h
Mov DX,184Fh
Int 10h
End;

El procedimiento del listado 23 utiliza la función 06h de la Int 10h del BIOS para limpiar lapantalla, este procedimiento es análogo al procedimiento ClrScr de la unidad CRT de Turbo Pascal.
Por otro lado, Asm nos permite incluir bloques de instrucciones en lenguaje ensamblador en cualquier partedel 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 construye unprograma 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 yfinalmente imprime el resultado en la pantalla.}
Program hibrido;
Uses Crt;
Var
N1,N2,Res : integer;
Begin
Writeln("Introduce un número: ");
Readln(N1);
Writeln("Introduce un número: ");
Readln(N2);...
tracking img