• Fonzie!@ttrpg.network
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    4 months ago
    global _main
        extern  _GetStdHandle@4
        extern  _WriteFile@20
        extern  _ExitProcess@4
    
        section .text
    _main:
        ; DWORD  bytes;    
        mov     ebp, esp
        sub     esp, 4
    
        ; hStdOut = GetstdHandle( STD_OUTPUT_HANDLE)
        push    -11
        call    _GetStdHandle@4
        mov     ebx, eax    
    
        ; WriteFile( hstdOut, message, length(message), &bytes, 0);
        push    0
        lea     eax, [ebp-4]
        push    eax
        push    (message_end - message)
        push    message
        push    ebx
        call    _WriteFile@20
    
        ; ExitProcess(0)
        push    0
        call    _ExitProcess@4
    
        ; never here
        hlt
    message:
        db      '¯\\\_(ツ)\_/¯', 10
    message_end: