CMU-CSAPP #1
@@ -650,30 +650,39 @@ Disassembly of section .text:
|
||||
# 0x603300 <node4>: 0x00000004000002b3 0x0000000000603310
|
||||
# 0x603310 <node5>: 0x00000005000001dd 0x0000000000603320
|
||||
# 0x603320 <node6>: 0x00000006000001bb 0x0000000000000000
|
||||
# this seems like a linked list
|
||||
4011a9: eb cb jmp 401176 <phase_6+0x82> # goto L6OuterLoop3Begin
|
||||
# L6OuterLoop3Exit
|
||||
4011ab: 48 8b 5c 24 20 mov 0x20(%rsp),%rbx
|
||||
4011b0: 48 8d 44 24 28 lea 0x28(%rsp),%rax
|
||||
4011b5: 48 8d 74 24 50 lea 0x50(%rsp),%rsi
|
||||
# breakpoint 2
|
||||
# x/6xg ($rsp + 0x20) prints:
|
||||
# 0x7fffffffd850: 0x00000000006032d0 0x00000000006032e0
|
||||
# 0x7fffffffd860: 0x00000000006032f0 0x0000000000603300
|
||||
# 0x7fffffffd870: 0x0000000000603310 0x0000000000603320
|
||||
4011ba: 48 89 d9 mov %rbx,%rcx
|
||||
4011bd: 48 8b 10 mov (%rax),%rdx
|
||||
4011c0: 48 89 51 08 mov %rdx,0x8(%rcx)
|
||||
4011c4: 48 83 c0 08 add $0x8,%rax
|
||||
4011c4: 48 83 c0 08 add $0x8,%rax # rax seems like a pointer iterating through linked list
|
||||
4011c8: 48 39 f0 cmp %rsi,%rax
|
||||
4011cb: 74 05 je 4011d2 <phase_6+0xde>
|
||||
4011cd: 48 89 d1 mov %rdx,%rcx
|
||||
4011d0: eb eb jmp 4011bd <phase_6+0xc9>
|
||||
4011d2: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx)
|
||||
4011d9: 00
|
||||
4011da: bd 05 00 00 00 mov $0x5,%ebp
|
||||
4011df: 48 8b 43 08 mov 0x8(%rbx),%rax
|
||||
4011e3: 8b 00 mov (%rax),%eax
|
||||
4011da: bd 05 00 00 00 mov $0x5,%ebp # ebp is set to 5
|
||||
#L6Loop4Start
|
||||
4011df: 48 8b 43 08 mov 0x8(%rbx),%rax # rax = rbx->next
|
||||
4011e3: 8b 00 mov (%rax),%eax # eax = rax->value_low32bit
|
||||
4011e5: 39 03 cmp %eax,(%rbx)
|
||||
4011e7: 7d 05 jge 4011ee <phase_6+0xfa>
|
||||
4011e7: 7d 05 jge 4011ee <phase_6+0xfa> # if next value >= current value, pass the test.
|
||||
# This means the linked list should be in descending order.
|
||||
4011e9: e8 4c 02 00 00 call 40143a <explode_bomb>
|
||||
4011ee: 48 8b 5b 08 mov 0x8(%rbx),%rbx
|
||||
4011f2: 83 ed 01 sub $0x1,%ebp
|
||||
4011f2: 83 ed 01 sub $0x1,%ebp # ebp is the counter. 6 loops
|
||||
4011f5: 75 e8 jne 4011df <phase_6+0xeb>
|
||||
#L6Loop4End
|
||||
4011f7: 48 83 c4 50 add $0x50,%rsp
|
||||
4011fb: 5b pop %rbx
|
||||
4011fc: 5d pop %rbp
|
||||
|
||||
@@ -3,3 +3,4 @@ Border relations with Canada have never been better.
|
||||
0 207
|
||||
7 0
|
||||
)/.%&'
|
||||
4 3 2 1 6 5
|
||||
|
||||
Reference in New Issue
Block a user