title: Determining the output of the following assembly codes
body: <p>Dump of assembler code for function phase_1:</p>
  
  <pre><code>0x08048bcc &lt;phase_1+0&gt;: push   %ebp
  0x08048bcd &lt;phase_1+1&gt;: mov    %esp,%ebp
  0x08048bcf &lt;phase_1+3&gt;: sub    $0x10,%esp
  0x08048bd2 &lt;phase_1+6&gt;: push   $0x8049808
  0x08048bd7 &lt;phase_1+11&gt;:        pushl  0x8(%ebp)
  0x08048bda &lt;phase_1+14&gt;:        call   0x8048f9c(strings_not_equal)
  0x08048bdf &lt;phase_1+19&gt;:        add    $0x10,%esp
  0x08048be2 &lt;phase_1+22&gt;:        test   %eax,%eax
  0x08048be4 &lt;phase_1+24&gt;:        je     0x8048beb(phase_1+31)
  0x08048be6 &lt;phase_1+26&gt;:        call   0x804951c(explode_bomb)
  0x08048beb &lt;phase_1+31&gt;:        leave
  0x08048bec &lt;phase_1+32&gt;:        ret
  </code></pre>
  
  <p>Dump of assembler code for function strings_not_equal:</p>
  
  <pre><code>0x08048f9c &lt;strings_not_equal+0&gt;:       push   %ebp
  0x08048f9d &lt;strings_not_equal+1&gt;:       mov    %esp,%ebp
  0x08048f9f &lt;strings_not_equal+3&gt;:       push   %edi
  0x08048fa0 &lt;strings_not_equal+4&gt;:       push   %esi
  0x08048fa1 &lt;strings_not_equal+5&gt;:       push   %ebx
  0x08048fa2 &lt;strings_not_equal+6&gt;:       mov    0x8(%ebp),%esi
  0x08048fa5 &lt;strings_not_equal+9&gt;:       mov    0xc(%ebp),%edi
  0x08048fa8 &lt;strings_not_equal+12&gt;:      push   %esi
  0x08048fa9 &lt;strings_not_equal+13&gt;:      call   0x8048f83(string_length)
  0x08048fae &lt;strings_not_equal+18&gt;:      mov    %eax,%ebx
  0x08048fb0 &lt;strings_not_equal+20&gt;:      push   %edi
  0x08048fb1 &lt;strings_not_equal+21&gt;:      call   0x8048f83 (string_length)
  0x08048fb6 &lt;strings_not_equal+26&gt;:      add    $0x8,%esp
  0x08048fb9 &lt;strings_not_equal+29&gt;:      mov    $0x1,%edx
  0x08048fbe &lt;strings_not_equal+34&gt;:      cmp    %eax,%ebx
  0x08048fc0 &lt;strings_not_equal+36&gt;:      jne    0x8048fe6 (strings_not_equal+74)
  0x08048fc2 &lt;strings_not_equal+38&gt;:      jmp    0x8048fcb (strings_not_equal+47)
  0x08048fc4 &lt;strings_not_equal+40&gt;:      mov    $0x1,%edx
  0x08048fc9 &lt;strings_not_equal+45&gt;:      jmp    0x8048fe6 (strings_not_equal+74)
  0x08048fcb &lt;strings_not_equal+47&gt;:      mov    %esi,%edx
  0x08048fcd &lt;strings_not_equal+49&gt;:      mov    %edi,%ecx
  0x08048fcf &lt;strings_not_equal+51&gt;:      cmpb   $0x0,(%esi)
  0x08048fd2 &lt;strings_not_equal+54&gt;:      je     0x8048fe1 (strings_not_equal+69)
  0x08048fd4 &lt;strings_not_equal+56&gt;:      mov    (%edx),%al
  0x08048fd6 &lt;strings_not_equal+58&gt;:      cmp    (%ecx),%al
  0x08048fd8 &lt;strings_not_equal+60&gt;:      jne    0x8048fc4 (strings_not_equal+40)
  0x08048fda &lt;strings_not_equal+62&gt;:      inc    %edx
  0x08048fdb &lt;strings_not_equal+63&gt;:      inc    %ecx
  0x08048fdc &lt;strings_not_equal+64&gt;:      cmpb   $0x0,(%edx)
  0x08048fdf &lt;strings_not_equal+67&gt;:      jne    0x8048fd4 (strings_not_equal+56)
  0x08048fe1 &lt;strings_not_equal+69&gt;:      mov    $0x0,%edx
  0x08048fe6 &lt;strings_not_equal+74&gt;:      mov    %edx,%eax
  0x08048fe8 &lt;strings_not_equal+76&gt;:      lea    0xfffffff4(%ebp),%esp
  0x08048feb &lt;strings_not_equal+79&gt;:      pop    %ebx
  0x08048fec &lt;strings_not_equal+80&gt;:      pop    %esi
  0x08048fed &lt;strings_not_equal+81&gt;:      pop    %edi
  0x08048fee &lt;strings_not_equal+82&gt;:      leave
  0x08048fef &lt;strings_not_equal+83&gt;:      ret
  </code></pre>