home bbs files messages ]

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