Código Ensamblador en VB6. Complemento ThunderVB
Código Ensamblador en VB6. Complemento ThunderVB
Código Ensamblador en VB6. Complemento ThunderVB
«Actualizando...versión Beta»
buscar...
Está aquí: Inicio Programación software Programación VB6 Código ensamblador en VB6. Complemento ThunderVB.
Tamaño de letra:
Complemento ThunderVB
Yo he conocido dos complementos pero uno no conseguí hacerlo funcionar, así que
voy a explicar el denominado: ThunderVB en su versión 1.0.0. Realmente es impresionante
el gran trabajo que realiza.
Su página web es la siguiente: http://www.freewebs.com/hardcorevb/tvb.html
El proyecto (última actualización el 21 de junio de 2010) se puede encontrar aquí también:
http://sourceforge.net/projects/thundervb/
ThunderVB es un excelente complemento para Visual Basic 6. Permite embeber código
ensamblador (asm) e instrucciones en C ¡directamente! en el código fuente de tus
programas. Además permite extender el IDE de VB a un editor de código asm/C básico, es
decir, que puede hacer el resaltado de sintaxis de palabras clave de asm/C y la opción de
autocompletar.
ThunderVB dejó de desarrollarse por falta de tiempo de sus desarrolladores, aunque la
última versión es bastante estable.
Instalar ThunderVB
Quiero comentar que solo he probado ThunderVB bajo Windows XP, no lo he testeado ni en
Windows Vista, ni en 7, ni en 8. Además -importante- requiere que tengas Visual Basic 6
con SP6 que puedes descargar de aquí:
http://www.microsoft.com/download/en/details.aspx?id=5721
Si vas a la descarga de antes de sourceforge y seleccionas "Files" podrás descargar los
archivos que necesites. Yo voy a descargar únicamente ThunderVB 1.0.0, exactamente el
archivo ThunderVB_1.0.0.rar. Una vez que descomprimes ese archivo verás un ejecutable
llamado ThunderVB 1.0.0.exe que es el que debes instalar:
Option Explicit
Option Explicit
Como puedes ver, los dos códigos hacen las mismas operaciones. En asm cada instrucción
debe comenzar por '#asm' pero para más info tienes muchos ejemplos en descarga. Para
que ThunderVB pueda ensamblar el código anterior, es necesario configurar la ruta al
enlazador (ml.exe). Yo voy a usar MASM32, así que pulso el botón de ThunderVB,
selecciono el plugin thunderasm y a la derecha pulso en paths (rutas). En la primera opción
(Inline Asm -> Path to Masm (ml.exe)) nos pide la ruta al archivo ml.exe. En mi caso es esta:
C:\masm32\bin\ml.exe
Que pongo en la configuración y pulso Ok.
Con todo configurado ya solo queda generar el exe. Durante este proceso, sale una ventana
de título "ThunderAsm" diciendo: "Project Must be saved for asm changes to have effect, You
want to save it now?" (Para que los cambios asm tengan efecto debe guardar el proyecto,
¿quiere guardarlo ahora?" Esto es porque habré hecho alguna modificación de código. Pulso
en Sí y dice que el proyecto ha sido guardado: "Project ASM_inline was saved". Pulso
aceptar y el programa se compila perfectamente.
¿Cómo se genera realmente el código?
Al igual que en otros casos hicimos uso de CallWindowProc para insertar y ejecutar código
asm, en este caso quise saber qué hace realmente el plugin ThunderVB con el código
anterior. Desensamblé el código del exe y comprobé que ThunderVB hace un trabajo
impecable: veo que se ha generado una nueva sección y ahí pega el código ensamblador y
el enlace a la misma es una call directa. El código asm final es el siguiente:
El trabajo que realiza este plugin es en una palabra: impresionante. Para los todavía
usuarios de Visual Basic 6 tal vez les resulte útil.
Para que todo usuario programador pueda examinar este proyecto dejo el mismo en
descarga. También he generado el exe para que cualquiera, tenga o no VB6, pueda ejecutar
el exe y comprobar la velocidad final de uno u otro código:
Escribir un comentario
Antes de publicar un comentario, usted debe aceptar nuestras condiciones de uso: Condiciones
de uso. Debido al spam, todos los comentarios serán moderados. Normalmente se responde en
unos minutos, refresca los comentarios para comprobarlo.
Nombre (requerido)
1000 simbolos
Enviar
JComments