Professional Documents
Culture Documents
En este programa utilizaremos la programacin hbrida la cual, es utilizada en los casos en donde el cdigo en ensamblador dificulta la estructuracin del programa. La programacin hbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas ms rpidos y eficientes.
C++
C++ Se utilizo un lenguaje de medio nivel como lo es el c++, que nos permite trabajar tanto en lenguajes de alto como de bajo nivel, en este caso con uno de bajo nivel como lo es el lenguaje ensamblador.
EJEMPLO: __asm {
mov al, 2
mov dx, 0xD007 por dx, al }
jae inicio2
}
//---------------------------------------------------------------------------
#include
<vcl.h> #include <stdlib.h> #include <conio.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
_asm { inicio:
jb mover
mov aux3, eax mov aux4, edx jae auxiliar
mover: mov aux2, edx mov aux, eax mov eax, aux2
_asm { inicio3:
//asignar:
}
{
jmp inicio2 } _asm { salir: } mostrar(); }
void __fastcall TForm1::RandomClick(TObject *Sender) { reDes->Lines->Clear(); for (int x = 0; x < 10; x++) numeros[x] = 0; for (int i = 0; i < 10; i++) { numeros[i] = random(20); reDes->Lines->Append(numeros[i]); } }
this->Canvas->Pen->Color = clBlack;
}
if ( cont <= 10 ) { reDes->Lines->Add( num ); numeros [ cont - 1] = num; } else if (cont > 10) { edNumero->Enabled = false; ShowMessage ("Se han completado los 10 numeros"); cont = 0; } edNumero->Clear(); edNumero->Focused(); }
void __fastcall TForm1::LimpiarClick(TObject *Sender) { reDes->Clear(); reNumeros->Clear(); for (int i = 0; i<10; i++) numeros[i]=0; edNumero->Clear(); edNumero->Enabled = true; cont = 0; }