Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

(gdb) disas phase_6 Dump of assembler code for function phase_6: 0x08048c2a <pha

ID: 3631343 • Letter: #

Question

(gdb) disas phase_6
Dump of assembler code for function phase_6:
0x08048c2a <phase_6+0>: push %ebp
0x08048c2b <phase_6+1>: mov %esp,%ebp
0x08048c2d <phase_6+3>: push %edi
0x08048c2e <phase_6+4>: push %esi
0x08048c2f <phase_6+5>: push %ebx
0x08048c30 <phase_6+6>: sub $0x3c,%esp
0x08048c33 <phase_6+9>: lea -0x24(%ebp),%eax
0x08048c36 <phase_6+12>: mov %eax,0x4(%esp)
0x08048c3a <phase_6+16>: mov 0x8(%ebp),%eax
0x08048c3d <phase_6+19>: mov %eax,(%esp)
0x08048c40 <phase_6+22>: call 0x80491a7 <read_six_numbers>
0x08048c45 <phase_6+27>: mov $0x0,%ebx
0x08048c4a <phase_6+32>: mov -0x24(%ebp,%ebx,4),%eax
0x08048c4e <phase_6+36>: sub $0x1,%eax
0x08048c51 <phase_6+39>: cmp $0x5,%eax
0x08048c54 <phase_6+42>: jbe 0x8048c5b <phase_6+49>
0x08048c56 <phase_6+44>: call 0x8049165 <explode_bomb>
0x08048c5b <phase_6+49>: lea 0x1(%ebx),%edi
0x08048c5e <phase_6+52>: cmp $0x6,%edi
0x08048c61 <phase_6+55>: je 0x8048d2a <phase_6+256>
0x08048c67 <phase_6+61>: lea -0x24(%ebp,%ebx,4),%esi
0x08048c6b <phase_6+65>: mov %edi,%ebx
0x08048c6d <phase_6+67>: lea -0x24(%ebp),%eax
0x08048c70 <phase_6+70>: mov %eax,-0x40(%ebp)
0x08048c73 <phase_6+73>: mov -0x40(%ebp),%edx
0x08048c76 <phase_6+76>: mov -0x4(%edx,%edi,4),%eax
0x08048c7a <phase_6+80>: cmp 0x4(%esi),%eax
0x08048c7d <phase_6+83>: jne 0x8048c84 <phase_6+90>
0x08048c7f <phase_6+85>: call 0x8049165 <explode_bomb>
0x08048c84 <phase_6+90>: add $0x1,%ebx
0x08048c87 <phase_6+93>: add $0x4,%esi
0x08048c8a <phase_6+96>: cmp $0x5,%ebx
0x08048c8d <phase_6+99>: jle 0x8048c73 <phase_6+73>
0x08048c8f <phase_6+101>: mov %edi,%ebx
0x08048c91 <phase_6+103>: jmp 0x8048c4a <phase_6+32>
0x08048c93 <phase_6+105>: lea -0x24(%ebp),%edx
0x08048c96 <phase_6+108>: mov $0x7,%eax
0x08048c9b <phase_6+113>: sub -0x4(%edx,%ecx,4),%eax
0x08048c9f <phase_6+117>: mov %eax,-0x4(%edx,%ecx,4)
---Type <return> to continue, or q <return> to quit---
0x08048ca3 <phase_6+121>: add $0x1,%ecx
0x08048ca6 <phase_6+124>: cmp $0x7,%ecx
0x08048ca9 <phase_6+127>: jne 0x8048c93 <phase_6+105>
0x08048cab <phase_6+129>: mov $0x804b5fc,%ecx
0x08048cb0 <phase_6+134>: mov $0x1,%eax
0x08048cb5 <phase_6+139>: mov $0x0,%edx
0x08048cba <phase_6+144>: jmp 0x8048cc2 <phase_6+152>
0x08048cbc <phase_6+146>: mov 0x8(%ecx),%ecx
0x08048cbf <phase_6+149>: add $0x1,%eax
0x08048cc2 <phase_6+152>: cmp -0x24(%ebp,%edx,4),%eax
0x08048cc6 <phase_6+156>: jl 0x8048cbc <phase_6+146>
0x08048cc8 <phase_6+158>: mov %ecx,-0x3c(%ebp,%edx,4)
0x08048ccc <phase_6+162>: add $0x1,%edx
0x08048ccf <phase_6+165>: cmp $0x5,%edx
0x08048cd2 <phase_6+168>: jg 0x8048ce0 <phase_6+182>
0x08048cd4 <phase_6+170>: mov $0x804b5fc,%ecx
0x08048cd9 <phase_6+175>: mov $0x1,%eax
0x08048cde <phase_6+180>: jmp 0x8048cc2 <phase_6+152>
0x08048ce0 <phase_6+182>: mov -0x3c(%ebp),%ecx
0x08048ce3 <phase_6+185>: mov -0x38(%ebp),%eax
0x08048ce6 <phase_6+188>: mov %eax,0x8(%ecx)
0x08048ce9 <phase_6+191>: mov -0x34(%ebp),%edx
0x08048cec <phase_6+194>: mov %edx,0x8(%eax)
0x08048cef <phase_6+197>: mov -0x30(%ebp),%eax
0x08048cf2 <phase_6+200>: mov %eax,0x8(%edx)
0x08048cf5 <phase_6+203>: mov -0x2c(%ebp),%edx
0x08048cf8 <phase_6+206>: mov %edx,0x8(%eax)
0x08048cfb <phase_6+209>: mov -0x28(%ebp),%eax
0x08048cfe <phase_6+212>: mov %eax,0x8(%edx)
0x08048d01 <phase_6+215>: movl $0x0,0x8(%eax)
0x08048d08 <phase_6+222>: mov %ecx,%ebx
0x08048d0a <phase_6+224>: mov $0x0,%esi
0x08048d0f <phase_6+229>: mov 0x8(%ebx),%edx
0x08048d12 <phase_6+232>: mov (%ebx),%eax
0x08048d14 <phase_6+234>: cmp (%edx),%eax
0x08048d16 <phase_6+236>: jge 0x8048d1d <phase_6+243>
0x08048d18 <phase_6+238>: call 0x8049165 <explode_bomb>
0x08048d1d <phase_6+243>: mov 0x8(%ebx),%ebx
0x08048d20 <phase_6+246>: add $0x1,%esi
0x08048d23 <phase_6+249>: cmp $0x5,%esi
---Type <return> to continue, or q <return> to quit---
0x08048d26 <phase_6+252>: je 0x8048d35 <phase_6+267>
0x08048d28 <phase_6+254>: jmp 0x8048d0f <phase_6+229>
0x08048d2a <phase_6+256>: mov $0x1,%ecx
0x08048d2f <phase_6+261>: nop
0x08048d30 <phase_6+262>: jmp 0x8048c93 <phase_6+105>
0x08048d35 <phase_6+267>: add $0x3c,%esp
0x08048d38 <phase_6+270>: pop %ebx
0x08048d39 <phase_6+271>: pop %esi
0x08048d3a <phase_6+272>: pop %edi
0x08048d3b <phase_6+273>: pop %ebp
0x08048d3c <phase_6+274>: ret
End of assembler dump.


Please someone help me. I have it due tonight. You will be my lifesaver.

Explanation / Answer

Dump of assembler code for function phase_6: 0x08048cdf : push %ebp 0x08048ce0 : mov %esp,%ebp 0x08048ce2 : push %edi 0x08048ce3 : push %esi 0x08048ce4 : push %ebx 0x08048ce5 : sub $0x3c,%esp 0x08048ce8 : lea -0x24(%ebp),%eax 0x08048ceb : mov %eax,0x4(%esp) 0x08048cef : mov 0x8(%ebp),%eax 0x08048cf2 : mov %eax,(%esp) 0x08048cf5 : call 0x8049393 0x08048cfa : mov $0x0,%ebx 0x08048cff : mov -0x24(%ebp,%ebx,4),%eax 0x08048d03 : sub $0x1,%eax 0x08048d06 : cmp $0x5,%eax 0x08048d09 : jbe 0x8048d10 0x08048d0b : call 0x8049351 0x08048d10 : lea 0x1(%ebx),%edi 0x08048d13 : cmp $0x6,%edi 0x08048d16 : jne 0x8048d29 0x08048d18 : mov $0x804a5fc,%ecx 0x08048d1d : mov $0x1,%eax 0x08048d22 : mov $0x0,%edx 0x08048d27 : jmp 0x8048d52 0x08048d29 : lea -0x24(%ebp,%ebx,4),%esi 0x08048d2d : mov %edi,%ebx 0x08048d2f : mov -0x28(%ebp,%edi,4),%eax 0x08048d33 : cmp 0x4(%esi),%eax 0x08048d36 : jne 0x8048d3d 0x08048d38 : call 0x8049351 0x08048d3d : add $0x1,%ebx 0x08048d40 : add $0x4,%esi 0x08048d43 : cmp $0x5,%ebx 0x08048d46 : jle 0x8048d2f 0x08048d48 : mov %edi,%ebx 0x08048d4a : jmp 0x8048cff 0x08048d4c : mov 0x8(%ecx),%ecx 0x08048d4f : add $0x1,%eax 0x08048d52 : cmp -0x24(%ebp,%edx,4),%eax 0x08048d56 : jl 0x8048d4c 0x08048d58 : mov %ecx,-0x3c(%ebp,%edx,4) 0x08048d5c : add $0x1,%edx 0x08048d5f : cmp $0x5,%edx 0x08048d62 : jg 0x8048d70 0x08048d64 : mov $0x804a5fc,%ecx 0x08048d69 : mov $0x1,%eax ---Type to continue, or q to quit--- 0x08048d6e : jmp 0x8048d52 0x08048d70 : mov -0x3c(%ebp),%ecx 0x08048d73 : mov -0x38(%ebp),%eax 0x08048d76 : mov %eax,0x8(%ecx) 0x08048d79 : mov -0x34(%ebp),%edx 0x08048d7c : mov %edx,0x8(%eax) 0x08048d7f : mov -0x30(%ebp),%eax 0x08048d82 : mov %eax,0x8(%edx) 0x08048d85 : mov -0x2c(%ebp),%edx 0x08048d88 : mov %edx,0x8(%eax) 0x08048d8b : mov -0x28(%ebp),%eax 0x08048d8e : mov %eax,0x8(%edx) 0x08048d91 : movl $0x0,0x8(%eax) 0x08048d98 : mov %ecx,%ebx 0x08048d9a : mov $0x0,%esi 0x08048d9f : mov 0x8(%ebx),%edx 0x08048da2 : mov (%ebx),%eax 0x08048da4 : cmp (%edx),%eax 0x08048da6 : jge 0x8048dad 0x08048da8 : call 0x8049351 0x08048dad : mov 0x8(%ebx),%ebx 0x08048db0 : add $0x1,%esi 0x08048db3 : cmp $0x5,%esi 0x08048db6 : jne 0x8048d9f 0x08048db8 : add $0x3c,%esp 0x08048dbb : pop %ebx 0x08048dbc : pop %esi 0x08048dbd : pop %edi 0x08048dbe : pop %ebp 0x08048dbf : ret End of assembler dump. (gdb) disas 0x804a5fc Dump of assembler code for function node1: 0x0804a5fc : jbe 0x804a601 0x0804a5fe : add %al,(%eax) 0x0804a600 : add %eax,(%eax) 0x0804a602 : add %al,(%eax) 0x0804a604 : lock movsl %ds:(%esi),%es:(%edi) 0x0804a606 : add $0x8,%al End of assembler dump.