Gracias por tu respuesta.
Saludos.
Saludos.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Eternal Idol en 20 Febrero 2021, 21:51 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
Cita de: Eternal Idol en 20 Febrero 2021, 21:26 PM
https://foro.elhacker.net/programacion_cc/eliminar_basura_de_los_exes_compilados_en_c-t299411.0.html
Citar #define _WIN32_WINNT 0x0403
#define WIN32_LEAN_AND_MEAN
#pragma optimize("gsy", on)
#pragma comment(linker,"/RELEASE")
#pragma comment(linker, "/IGNORE:4108")
#pragma comment(linker, "/FIXED")
#pragma comment(linker, "/STUB:stub.exe")
#pragma comment(linker, "/MERGE:.rdata=.data")
//#pragma comment(linker, "/MERGE:.reloc=.data")
#pragma comment(linker, "/MERGE:.text=.data")
#pragma comment(linker, "/NODEFAULTLIB")
#pragma comment(linker, "/ENTRY:DllMain")
#pragma comment(linker, "/FILEALIGN:16")
#pragma comment(linker, "/ALIGN:16")
#pragma pack(1)
mov ebp, esp
push eax ;a partir de ahora existe una variable en SS:EBP+ESP+4
Cita de: Eternal Idol en 20 Febrero 2021, 20:02 PM
La mayoria de la RTL de C en Windows termina llamando a la API del mismo
Cita de: Eternal Idol en 20 Febrero 2021, 19:49 PM
El primero tiene la RTL de C completa enlazada estaticamente dentro del ejecutable
#include <stdio.h>
int main()
{
printf ("Im the output.");
getchar ();
return 0;
}
.686
.model FLAT
includelib \masm32\lib\msvcrt.lib
printf proto C, :dword
getchar proto C
exit proto C, :dword
.data?
dd ?
.data
__0 db "Im the output.", 0
.code
start:
call main
invoke exit, 0
main proc
invoke printf, offset __0
invoke getchar
ret
main endp
end start