elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [50] 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ... 387
491  Programación / ASM / Re: Simbolo no resuelto por el linker. en: 28 Febrero 2021, 17:49 pm
Pero lo es, con PROTO e INVOKE no hace falta explicitar el decorado.


Código
  1. GetCommandLineA PROTO STDCALL
  2. ...
  3. invoke GetCommandLineA
492  Programación / ASM / Re: Simbolo no resuelto por el linker. en: 28 Febrero 2021, 01:20 am
Código
  1. extern stdcall GetCommandLineA@0: proc
  2. ...
  3. call GetCommandLineA@0
  4.  
493  Programación / ASM / Re: ¿Como declarar un array dentro de una estructura en MASM? en: 23 Febrero 2021, 22:48 pm
¿En que te basas para afirmar que la estructura ocupa 64 bytes? El WinDbg no concuerda:

0:000> dt hola!_struct /v
struct _struct, 2 elements, 0x80 bytes
   +0x000 data0            : UChar
   +0x040 data1            : UChar

Código
  1. mov eax, sizeof _struct

Eso pone 0x80 en eax.
494  Programación / ASM / Re: ¿Que es exactamente la directiva .x86 de MASM? en: 21 Febrero 2021, 22:41 pm
Si pero es algo para el ensamblador (MASM), el procesador entendera los opcodes pero si el ensamblador no reconoce las instrucciones no los va a generar en primer termino.
495  Programación / ASM / Re: ¿Que es exactamente la directiva .x86 de MASM? en: 21 Febrero 2021, 21:50 pm
Si usas .686 no necesariamente funcione tu programa en un procesador 486 por ejemplo, puede ser que uses instrucciones que no sean reconocidas ... entonces haciendo .686 las habilitas para el ensamblador.
496  Programación / ASM / Re: Especificar una cadena de caracteres para invoke en MASM32. en: 21 Febrero 2021, 21:42 pm
http://www.asmcommunity.net/forums/topic/?id=17217
497  Programación / ASM / Re: ¿Que tan potente es la libreria masm32rt.inc? ¿Vale la pena estudiarla? en: 21 Febrero 2021, 21:37 pm
Para que enlace correctamente.

http://unixwiz.net/techtips/win32-callconv.html#decor
498  Programación / ASM / Re: ¿Que tan potente es la libreria masm32rt.inc? ¿Vale la pena estudiarla? en: 21 Febrero 2021, 16:15 pm
https://docs.microsoft.com/en-us/cpp/assembler/masm/proto?view=msvc-160

El nombre, el numero de parametros y la convencion de llamada. Lo mismo de antes pero sin usar PROTO/invoke:

Código
  1. includelib user32.lib
  2. ...
  3. EXTERN stdcall MessageBoxA@16 : PROC
  4. ...
  5. push 0
  6. push offset caption
  7. push offset msg
  8. push 0
  9. call MessageBoxA@16

En STDCALL el codigo llamado se ocupa de acomodar la pila, en C es lo contrario y cuando usas invoke con funciones de C ademas de empujar los parametros invoke se ocupa tambien de acomodar la pila.

Ejemplo:
  00000022: 68 00 00 00 00     push        offset __0
  00000027: E8 00 00 00 00     call        _printf
 0000002C: 83 C4 04           add         esp,4
499  Programación / ASM / Re: ¿Que tan potente es la libreria masm32rt.inc? ¿Vale la pena estudiarla? en: 20 Febrero 2021, 22:58 pm
De manera analoga a las funciones de la RTL de C, se declara el PROTO (el 99% son STDCALL) con el nombre de la funcion y sus parametros y despues se puede usar invoke.


https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox

Código
  1. includelib user32.lib
  2.  
  3. MessageBoxA PROTO stdcall, :DWORD, :DWORD, :DWORD, :DWORD
  4.  
  5. ...
  6. .data
  7. msg db "HOLA", 0
  8. caption db "PRUEBA", 0    
  9. ...
  10. main proc
  11.  
  12. invoke MessageBoxA, 0, offset msg, offset caption, 0
  13.  

Este trabajo de los PROTO viene ya hecho con MASM32 incluyendo si recuerdo bien windows.inc, ya hace varios años que no uso MASM32.


Es insostenible tener que mantener binarios para varias plataformas (x86, x64 y ahora viene ARM64 a toda maquina), es sin lugar a dudas mas duro escribir lo mismo sin tener las facilidades de la programacion orientada a objetos y/o generica. Programadores para un proyecto profesional que sean capaces de crear y mantenerlo en ensamblador ... en una empresa grande de software tal vez y con suerte tengas un par. No vale la pena el esfuerzo de escribir un proyecto entero en ensamblador, si es muy util para depurar y comprender problemas complejos que con solo saber C/C++ seran dificiles de solucionar. Si vale la pena aprenderlo y hacer proyectos puntuales, prototipos, depurar, etc. pero no me meteria en nada serio mas alla de un modulo .asm dentro de un proyecto en C/C++ cuando no hay mas remedio (solo lo necesite una  vez en casi 18 años de carrera).
500  Programación / ASM / Re: ¿Por que tanta diferencia de tamaño entre un programa compilado en un HLL y ASM? en: 20 Febrero 2021, 22:50 pm


 ;D

A todo el mundo le funciona ...



Si, al enlazar una libreria estatica (.LIB de codigo) el primer programa contiene todo el codigo de la RTL en su ejecutable, el segundo simplemente enlaza dinamicamente la DLL (con un .LIB de importacion).

Páginas: 1 ... 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [50] 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ... 387
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines