SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
PROGRAMACIÓN HIBRIDA

En la programación software, sistemas híbridos inteligentes denotan a los sistemas software
que emplean, en paralelo, una combinación de modelos de inteligencia artificial, métodos y
técnicas de éstos subcampos

Cada sistema inteligente natural es un híbrido porque éstos desarrollan operaciones
mentales tanto en niveles simbólicos como sub-simbólicos. Desde hace pocos años se ha
ido desarrollando una discusión sobre la importancia en la inteligencia artificial de la
integración de todos éstos sistemas. Basados en las nociones de que se habían ya creado
simples y específicos sistemas de inteligencia artificial (como sistemas para la visión de
computadores, síntesis del habla, etc., o software que emplean alguno de los modelos
mencionados arriba) algunos autores proponen aque es ahora el momento de la integración
para crear complejos, grandes sistemas de inteligencia artificial. Investigadores destacados
sobre estas ideas son Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thórisson y
Michel Arbib.

La metodología de diseño Creacionista (CDM, por sus siglas en inglés) (nótese en su
nombre referencias al deseo humano de ser el Arquitecto) es una filosofía de desarrollo
software diseñado específicamente para la creación de grandes sistemas A.I. CDM está
basado en pasos de diseño iterativos que guíen hacia la creación de una red de llamados
módulos interactivos, que se comunican por flujos tipados explícitos y mensajes discretos.
02

La organización Mindmakers es un portal online para la gente que trabaja en la integración
e incremento de la coloboración en el campo de la Inteligencia Artificial

Al trabajar con un lenguaje de alto nivel, en ocasiones nos encontramos con el problema de
que necesitamos que haga determinada función o trabajo pero desafortunadamente ésta solo
existe en otro lenguaje que no es el que necesitamos utilizar, o simplemente, no
encontramos esa función en ningún lenguaje de alto nivel.

03

Ventajas de la Programación Híbrida

ü Para mejorar la escalabilidad
ü Cuando muchas tareas producen desbalanceo
ü Aplicaciones que combinan paralelismo de grano grueso
        y fino
ü Reducción del tiempo de desarrollo de código
ü Cuando el número de procesos MPI es fijo
ü En caso de mezcla de paralelismo funcional y de datos

En este momento el lenguaje ensamblador constituye una herramienta no solo eficaz, sino
simple para producir un parche para el compilador de nuestro lenguaje preferido.
Tal vez el mayor problema con el que nos enfrentemos sea el de cómo conectar ambos
programas (el de alto y el de bajo niveles) y cómo pasar variables de un programa al otro.
Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que
aparecen en el código fuente del ensamblador pero que no generan ninguna instrucción de
máquina, pero proporcionan directivas para que el ensamblador pueda operar con datos,
ramificaciones condicionales, generación de listados y con macros durante el proceso de
ensamble.

DIRECTIVAS PARA COMPILACIÓN HIBRIDA

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.
Ejemplo de un procedimiento híbrido:
Procedure Limpia_Pantalla;
Assembler;
Asm
Mov AX,0600h ; procedimiento Clr Scr de la unidad CRT de Turbo Pascal
Mov BH,18h
Mov CX,0000h
Mov DX,184Fh
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:
;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.

; 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.

Program hibrido;
Uses Crt;
Var
N1,N2,Res : integer;
Begin
Writeln(“Introduce un número: “);
Readln(N1);
Writeln(“Introduce un número: “);
Readln(N2);
Asm
Mov AX,N1;
Add AX,N2;
Mov Res,AX
End;
Writeln(“El resultado de la suma es: “,Res);
Readln;
End.

;Este programa solicita al usuario que presione alguna tecla, cuando la tecla es presionada,
ésta se utiliza para rellenar la pantalla. Termina cuando se presiona la tecla enter. Utiliza
tres procedimientos:
Limpia_Pantalla: Este se encarga de borrar la pantalla
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.

Program Hibrido2;
Uses Crt;
Var
Car: Char;
i,j : integer;
;Este procedimiento limpia la pantalla y pone blanco sobre azul
Procedure Limpia_Pantalla;
Assembler;
Asm
Mov AX,0600h
Mov Bh,17h
Mov CX,0000h
Mov DX,184Fh
Int 10h
End;
;Este procedimiento imprime el carácter en la pantalla
Procedure Imprime_Car(C: Char);
Assembler;
Asm
Mov Ah,02h
Mov Dl,C
Int 21h
End;
;Este procedimiento tiene la misma función que el procedimiento Goto XY de Turbo Pascal
Procedure Cursor_XY(X,Y: Byte);
Assembler;
Asm
Mov Ah,02h
Mov Bh,00h
Mov Dh,Y
Mov Dl,X
Int 10h
End;
Begin
Limpia_Pantalla;
Repeat
Limpia_Pantalla;
Cursor_XY(0,0);
Write(‘Introduce un carácter: ‘);
Car:=Read Key;
Imprime_Car(Car);
Limpia_Pantalla;
If car #13 then
Begin
For i:=0 to 24 do
For j:=0 to 79 do
Cursor_XY(j,i);
Imprime_Car(Car);
End;
Cursor_XY(30,24);
Write(‘Presiona enter para salir u otro para seguir…’);
Readln;
Until car = #13;
End.

Tal vez el mayor problema es cómo conectar dos programas, el de alto y el de bajo niveles,
y cómo pasar variables de un programa al otro.
Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que
aparecen en el código fuente del ensamblador pero que no generan ninguna instrucción de
máquina, pero proporcionan directivas para que el ensamblador pueda operar con datos,
ramificaciones condicionales, generación de listados y con macros durante el proceso de
ensamble.

El formato de este pseudo-operador es PUBLIC número, variable o rótulo

Ejemplo de uso de PUBLIC:

PUBLIC nombre
Instrucciones
RET
nombre ENDP

Mais conteúdo relacionado

Mais procurados

Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERASFabian Rojas
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entradaSasil Catzim
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingJonathan Bastidas
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriosAnel Sosa
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 

Mais procurados (20)

Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Transacciones
TransaccionesTransacciones
Transacciones
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turing
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatorios
 
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADORFUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 

Semelhante a Equipo 6 programacion hibrida

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmosnileyna
 
Programación
ProgramaciónProgramación
ProgramaciónGraceelml
 
Programa informático
Programa informáticoPrograma informático
Programa informáticotomorrowland
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxDavidGarca147527
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónLinely Vergara
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmoAbrirllave
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraFaridCastillo2
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraJulioVizcarra5
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10anita andrea
 

Semelhante a Equipo 6 programacion hibrida (20)

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmos
 
Programación
ProgramaciónProgramación
Programación
 
Programa informático
Programa informáticoPrograma informático
Programa informático
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Programación.pptx
Programación.pptxProgramación.pptx
Programación.pptx
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Compiladores financieros trabajo 10
Compiladores financieros trabajo 10Compiladores financieros trabajo 10
Compiladores financieros trabajo 10
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 

Mais de gabo

Proyecto Sound Search
Proyecto Sound SearchProyecto Sound Search
Proyecto Sound Searchgabo
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativagabo
 
Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuestagabo
 
Encuesta sound search
Encuesta sound searchEncuesta sound search
Encuesta sound searchgabo
 
Sound search
Sound searchSound search
Sound searchgabo
 
Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparacionesgabo
 
Equipo 6 codigo segment
Equipo 6 codigo segmentEquipo 6 codigo segment
Equipo 6 codigo segmentgabo
 
Equipo 6 buses
Equipo 6 busesEquipo 6 buses
Equipo 6 busesgabo
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086gabo
 
Condicional
CondicionalCondicional
Condicionalgabo
 
Condicional
CondicionalCondicional
Condicionalgabo
 
Condicional
CondicionalCondicional
Condicionalgabo
 
Equipo 1
Equipo 1Equipo 1
Equipo 1gabo
 
Equipo 1
Equipo 1Equipo 1
Equipo 1gabo
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamientogabo
 
Equipo 5
Equipo 5Equipo 5
Equipo 5gabo
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externosgabo
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externosgabo
 
2.5.2 Circular
2.5.2 Circular2.5.2 Circular
2.5.2 Circulargabo
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustesgabo
 

Mais de gabo (20)

Proyecto Sound Search
Proyecto Sound SearchProyecto Sound Search
Proyecto Sound Search
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuesta
 
Encuesta sound search
Encuesta sound searchEncuesta sound search
Encuesta sound search
 
Sound search
Sound searchSound search
Sound search
 
Equipo 6 comparaciones
Equipo 6 comparacionesEquipo 6 comparaciones
Equipo 6 comparaciones
 
Equipo 6 codigo segment
Equipo 6 codigo segmentEquipo 6 codigo segment
Equipo 6 codigo segment
 
Equipo 6 buses
Equipo 6 busesEquipo 6 buses
Equipo 6 buses
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086
 
Condicional
CondicionalCondicional
Condicional
 
Condicional
CondicionalCondicional
Condicional
 
Condicional
CondicionalCondicional
Condicional
 
Equipo 1
Equipo 1Equipo 1
Equipo 1
 
Equipo 1
Equipo 1Equipo 1
Equipo 1
 
Modos de direccionamiento
Modos de direccionamientoModos de direccionamiento
Modos de direccionamiento
 
Equipo 5
Equipo 5Equipo 5
Equipo 5
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externos
 
3.2.2 Externos
3.2.2 Externos3.2.2 Externos
3.2.2 Externos
 
2.5.2 Circular
2.5.2 Circular2.5.2 Circular
2.5.2 Circular
 
2.1.4 ajustes
2.1.4 ajustes2.1.4 ajustes
2.1.4 ajustes
 

Equipo 6 programacion hibrida

  • 1. PROGRAMACIÓN HIBRIDA En la programación software, sistemas híbridos inteligentes denotan a los sistemas software que emplean, en paralelo, una combinación de modelos de inteligencia artificial, métodos y técnicas de éstos subcampos Cada sistema inteligente natural es un híbrido porque éstos desarrollan operaciones mentales tanto en niveles simbólicos como sub-simbólicos. Desde hace pocos años se ha ido desarrollando una discusión sobre la importancia en la inteligencia artificial de la integración de todos éstos sistemas. Basados en las nociones de que se habían ya creado simples y específicos sistemas de inteligencia artificial (como sistemas para la visión de computadores, síntesis del habla, etc., o software que emplean alguno de los modelos mencionados arriba) algunos autores proponen aque es ahora el momento de la integración para crear complejos, grandes sistemas de inteligencia artificial. Investigadores destacados sobre estas ideas son Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thórisson y Michel Arbib. La metodología de diseño Creacionista (CDM, por sus siglas en inglés) (nótese en su nombre referencias al deseo humano de ser el Arquitecto) es una filosofía de desarrollo software diseñado específicamente para la creación de grandes sistemas A.I. CDM está basado en pasos de diseño iterativos que guíen hacia la creación de una red de llamados módulos interactivos, que se comunican por flujos tipados explícitos y mensajes discretos. 02 La organización Mindmakers es un portal online para la gente que trabaja en la integración e incremento de la coloboración en el campo de la Inteligencia Artificial Al trabajar con un lenguaje de alto nivel, en ocasiones nos encontramos con el problema de que necesitamos que haga determinada función o trabajo pero desafortunadamente ésta solo existe en otro lenguaje que no es el que necesitamos utilizar, o simplemente, no encontramos esa función en ningún lenguaje de alto nivel. 03 Ventajas de la Programación Híbrida ü Para mejorar la escalabilidad ü Cuando muchas tareas producen desbalanceo ü Aplicaciones que combinan paralelismo de grano grueso y fino ü Reducción del tiempo de desarrollo de código ü Cuando el número de procesos MPI es fijo ü En caso de mezcla de paralelismo funcional y de datos En este momento el lenguaje ensamblador constituye una herramienta no solo eficaz, sino simple para producir un parche para el compilador de nuestro lenguaje preferido. Tal vez el mayor problema con el que nos enfrentemos sea el de cómo conectar ambos
  • 2. programas (el de alto y el de bajo niveles) y cómo pasar variables de un programa al otro. Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que aparecen en el código fuente del ensamblador pero que no generan ninguna instrucción de máquina, pero proporcionan directivas para que el ensamblador pueda operar con datos, ramificaciones condicionales, generación de listados y con macros durante el proceso de ensamble. DIRECTIVAS PARA COMPILACIÓN HIBRIDA 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. Ejemplo de un procedimiento híbrido: Procedure Limpia_Pantalla; Assembler; Asm Mov AX,0600h ; procedimiento Clr Scr de la unidad CRT de Turbo Pascal Mov BH,18h Mov CX,0000h Mov DX,184Fh 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: ;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. ; 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. Program hibrido; Uses Crt; Var N1,N2,Res : integer; Begin Writeln(“Introduce un número: “); Readln(N1); Writeln(“Introduce un número: “); Readln(N2); Asm
  • 3. Mov AX,N1; Add AX,N2; Mov Res,AX End; Writeln(“El resultado de la suma es: “,Res); Readln; End. ;Este programa solicita al usuario que presione alguna tecla, cuando la tecla es presionada, ésta se utiliza para rellenar la pantalla. Termina cuando se presiona la tecla enter. Utiliza tres procedimientos: Limpia_Pantalla: Este se encarga de borrar la pantalla 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. Program Hibrido2; Uses Crt; Var Car: Char; i,j : integer; ;Este procedimiento limpia la pantalla y pone blanco sobre azul Procedure Limpia_Pantalla; Assembler; Asm Mov AX,0600h Mov Bh,17h Mov CX,0000h Mov DX,184Fh Int 10h End; ;Este procedimiento imprime el carácter en la pantalla Procedure Imprime_Car(C: Char); Assembler; Asm Mov Ah,02h Mov Dl,C Int 21h End; ;Este procedimiento tiene la misma función que el procedimiento Goto XY de Turbo Pascal Procedure Cursor_XY(X,Y: Byte); Assembler; Asm Mov Ah,02h Mov Bh,00h Mov Dh,Y Mov Dl,X
  • 4. Int 10h End; Begin Limpia_Pantalla; Repeat Limpia_Pantalla; Cursor_XY(0,0); Write(‘Introduce un carácter: ‘); Car:=Read Key; Imprime_Car(Car); Limpia_Pantalla; If car #13 then Begin For i:=0 to 24 do For j:=0 to 79 do Cursor_XY(j,i); Imprime_Car(Car); End; Cursor_XY(30,24); Write(‘Presiona enter para salir u otro para seguir…’); Readln; Until car = #13; End. Tal vez el mayor problema es cómo conectar dos programas, el de alto y el de bajo niveles, y cómo pasar variables de un programa al otro. Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que aparecen en el código fuente del ensamblador pero que no generan ninguna instrucción de máquina, pero proporcionan directivas para que el ensamblador pueda operar con datos, ramificaciones condicionales, generación de listados y con macros durante el proceso de ensamble. El formato de este pseudo-operador es PUBLIC número, variable o rótulo Ejemplo de uso de PUBLIC: PUBLIC nombre Instrucciones RET nombre ENDP