Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.asm.x86    |    Ahh, the lost art of x86 assembly    |    4,675 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 3,890 of 4,675    |
|    G G to All    |
|    newbie question about program    |
|    13 Jun 19 15:10:08    |
      From: gdotone@nospicedham.gmail.com              Windows 64-bit Assembly Language Programming       Quick Start: Intel X86-64, SSE, AVX                            includelib kernel32.lib ; Windows kernel interface       GetStdHandle proto ; Function to retrieve I/O handle       WriteConsoleA proto ; Function that writes to command window       Console equ -11 ; Device code for console text output.       ExitProcess proto               .code       mainCRTStartup proc               sub RSP,40 ; Reserve "shadow space" on stack.              Obtain "handle" for console display monitor I/O streams               mov RCX,Console ; Console standard output handle        call GetStdHandle ; Returns handle in register RAX        mov stdout,RAX ; Save handle for text display.              Display the "Hello World" message.               mov RCX,stdout ; Handle to standard output device        lea RDX,hwm ; Pointer to message (byte array).        mov R8,lengthof hwm ; Number of characters to display        lea R9,nbwr ; Number of bytes actually written.        call WriteConsoleA ; Write text string to window.               add RSP,40 ; Replace "shadow space" on stack        mov RCX,0 ; Set exit status code to zero.        call ExitProcess ; Return control to Windows.              mainCRTStartup endp               .data       hwm byte "Hello World"       stdout qword ? ; Handle to standard output device       nbwr qword ? ; Number of bytes actually written              end                     ----------------------------------       questions:              sub RSP,40              RSP is a stack pointer, pointing to an address, sub subtracts 40 from the       address       is that 40 bytes? so the stack pointer is pointing 40 bytes lower?              lea R9,nbwr              where does nbwr gets its value?              add RSP,40              moves the pointer, the stack pointer back to its original location?              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca