title: Understanding Y86
body: <p>I have the following code. Can someone please explain the questions that I have in the parenthesis?</p>
  
  <pre><code># Execution begins at address 0 (why?)
  .pos 0
  irmovq stack, %rsp  # Set up stack pointer  (how can i move the word "stack" in rsp)
  call main   # Execute main program
  halt    # Terminate program  
  
  # Sample linked list   (what is the purpose of .align 8?)
  .align 8
  ele1:
  .quad 0x00a
  .quad ele2
  ele2:
  .quad 0x0b0
  .quad ele3
  ele3:
  .quad 0xc00
  .quad 0
  
  main:
  irmovq ele1,%rdi
  call sum
  ret
  
  
  sum:
  
  
  # Stack starts here and grows to lower addresses
  .pos 0x100
  stack:
  </code></pre>