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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 29
81  Sistemas Operativos / Windows / Re: AWE y Windows en: 20 Febrero 2021, 22:10 pm
Gracias por tu respuesta.
Saludos.
82  Programación / ASM / Re: ¿Existe alguna forma de declarar variables en la pila en ensamblador? en: 20 Febrero 2021, 21:57 pm
En MASM podes usar PROC y LOCAL para eso.

In the second directive, within a procedure definition (PROC), LOCAL creates stack-based variables that exist for the duration of the procedure. The labelId may be a simple variable or an array containing count elements, where count is a constant expression.

https://docs.microsoft.com/en-us/cpp/assembler/masm/local-masm?view=msvc-160
https://docs.microsoft.com/en-us/cpp/assembler/masm/proc?view=msvc-160

Muchas gracias por tu atencion.
Realmente llevaba bastante tiempo buscando una forma comoda de hacer esto.

Saludos.
83  Programación / ASM / Re: ¿Por que tanta diferencia de tamaño entre un programa compilado en un HLL y ASM? en: 20 Febrero 2021, 21:55 pm

Citar
Código
  1.   #define _WIN32_WINNT 0x0403
  2.   #define WIN32_LEAN_AND_MEAN
  3.   #pragma optimize("gsy", on)
  4.   #pragma comment(linker,"/RELEASE")
  5.   #pragma comment(linker, "/IGNORE:4108")
  6.   #pragma comment(linker, "/FIXED")
  7.   #pragma comment(linker, "/STUB:stub.exe")
  8.   #pragma comment(linker, "/MERGE:.rdata=.data")
  9.   //#pragma comment(linker, "/MERGE:.reloc=.data")
  10.   #pragma comment(linker, "/MERGE:.text=.data")
  11.   #pragma comment(linker, "/NODEFAULTLIB")
  12.   #pragma comment(linker, "/ENTRY:DllMain")
  13.   #pragma comment(linker, "/FILEALIGN:16")
  14.   #pragma comment(linker, "/ALIGN:16")
  15.   #pragma pack(1)

¿Me explicarias que exactamente esta pasando aqui con el linker? ¿Que es "gsy"?



¿Por que en el primer programa la libreria se supone estatica y en el segundo dinamica? ¿Cada vez que declaro ID proto C, ... el ensamblador añade un GetProcAddress o algo asi?
84  Programación / ASM / ¿Existe alguna forma de declarar variables en la pila en ensamblador? en: 20 Febrero 2021, 21:46 pm
En HLLs el compilador se encarga de procesar los calculos necesarios para el uso de variables en la pila, ademas de ocasionar la localidad entre las variables declaradas.

¿Existe alguna forma de hacer esto en ensamblador? Una tecnica, o algo asi...

Lo unico que se me ocurre es:

Código
  1. mov ebp, esp
  2. push eax ;a partir de ahora existe una variable en SS:EBP+ESP+4

¿Hay alguna otra forma que "Memorizando" las posiciones de memoria?

(Eso lo he aprendido desensamblado .COMs con DEBUG.EXE. Si existe una tecnica mas moderna agradeceria una pequeña explicacion o una referencia)

Saludos.
85  Programación / ASM / Representacion de caracteres especiales de C en ensamblador. en: 20 Febrero 2021, 21:22 pm
¿Existe alguna forma de expresar los caracteres de C:

\r \n \a \t \b \0 \x...

En ensamblador con la misma simpleza, o deben ser expresados esecificamente a traves del valor ASCII?

Lei en Stack Overflow que depende del ensamblador... En este caso hablamos de MASM32.

Gracias de antemano.
Saludos.
86  Programación / ASM / Re: ¿Que tan potente es la libreria masm32rt.inc? ¿Vale la pena estudiarla? en: 20 Febrero 2021, 21:17 pm
La mayoria de la RTL de C en Windows termina llamando a la API del mismo

Claro... Es la unica forma en que puede llegar a los dispositivos... Bueno, creo que seria mas "Oportuno" que me dedique a aprender la API de Windows. Al final probablemente me termine siendo mas util que conocer solo la libreria de C.

Gracias por tu atencion.
Saludos.
87  Programación / ASM / Re: ¿Por que tanta diferencia de tamaño entre un programa compilado en un HLL y ASM? en: 20 Febrero 2021, 21:13 pm
El primero tiene la RTL de C completa enlazada estaticamente dentro del ejecutable

Eso no me lo imagine...

Gracias por tu respuesta.
Saludos.
88  Foros Generales / Foro Libre / Re: !Que poco ha cambiado esto cabrones!!!! en: 20 Febrero 2021, 21:03 pm
¡Bienvenido!

Me parece haberte leido por el 2016... Para entonces estaba en el foro aunque con otro perfil. Me llamaba MRx86.

Siempre leo temas antiguos... usuarios como Randomize o YST tuvieron mucho que aportar; es interesante leerlos.

Saludos.
89  Programación / ASM / ¿Por que tanta diferencia de tamaño entre un programa compilado en un HLL y ASM? en: 20 Febrero 2021, 19:41 pm
Perdonen la trivialidad... pero un programa en C, por ejemplo, el siguiente:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    printf ("Im the output.");
  6.    getchar ();
  7.  
  8.    return 0;
  9. }

y creo que imposiblemente mas exactamente el mismo programa, pero en ensamblador:

Código
  1. .686
  2. .model FLAT
  3.  
  4. includelib \masm32\lib\msvcrt.lib
  5.  
  6. printf proto C, :dword
  7. getchar proto C
  8. exit proto C, :dword
  9.  
  10.    .data?
  11.    dd ?
  12.  
  13.    .data
  14.      __0 db "Im the output.", 0
  15.  
  16.  .code
  17.  
  18. start:
  19.  
  20.    call main
  21.    invoke exit, 0
  22.  
  23. main proc
  24.    invoke printf, offset __0
  25.    invoke getchar
  26.  
  27.    ret
  28.  
  29. main endp
  30. end start

Producen una salida con una diferencia de ciento veintinueve mil seiscientos cuarenta y dos (129 642) bytes ¡Eso seria un 85.40% mayor, para el mismo algoritmo! ¡Que locura!

¿Por que existe esta diferencia tan abismal?
¿Es la diferencia siempre de este tamaño en terminos porcentuales, o la diferencia existe hasta cierto punto?

Saludos.
90  Programación / ASM / ¿Que tan potente es la libreria masm32rt.inc? ¿Vale la pena estudiarla? en: 20 Febrero 2021, 19:18 pm
Hola,

El primer lenguaje que aprendi fue C y hasta ahora sigue siendo el unico que utilizo. Despues de unos meses estudiando MASM comienzo a experimentar con el; especificamente MASM32. Hasta ahora la unica libreria que he utilizado (en general) ha sido msvcrt.lib (Notese mi relacion con C). Siento que estoy en las mismas, y me surgen las preguntas:

¿Deberia estudiar la libreria "Estandar" de MASM32 (masm32rt.inc)?
¿Deberia mas bien estudiar las APIs de Windows para trabajar con ellas directamente?
¿Me basta utilizar la libreria de C?

Por cierto... ¿Alguien  sabe que siginfica el acronimo MSVCRT?

Saludos y gracias de antemano.
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 29
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines