Can anyone clearly explain this disassembly?
<p>i am new to debugging. I came through this code which states that it spawns a shell prompt when executed.</p>

<pre><code>0:  31 c0                   xor    eax,eax
2:  50                      push   eax
3:  68 2f 2f 73 68          push   0x68732f2f
8:  68 2f 62 69 6e          push   0x6e69622f
d:  89 e3                   mov    ebx,esp
f:  50                      push   eax
10: 53                      push   ebx
11: 89 e1                   mov    ecx,esp
13: b0 0b                   mov    al,0xb
15: cd 80                   int    0x80 
</code></pre>

<p>Please clearly explain what is actually going on in the registers and the memory  here.</p>