SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficaciónAndhy H Palma
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Humano Terricola
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesKim Sorel Rush
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorInfomania pro
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSxinithazangels
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 

La actualidad más candente (20)

UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 

Similar 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
 

Similar 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)
 

Más 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
 

Más 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