Asum.ys ----Changes to memory and registers Ruiqin Tian
5.init: irmovl Stack, %esp # Set up stack pointer ZF SF CF PC 6. irmovl Stack, %ebp # Set up base pointer 1 0 0 0xc address stack register 0X100 %esp, %ebp %eax 0Xfc %ecx 0Xf8 %edx 0xf4 %ebx 0xf0 %esi 0xec %edi %esp 0X100 %ebp 0X100 2
7. call main ZF SF CF PC 1 0 0 0x24 address stack register 0X100 %ebp %eax 0Xfc %esp 0X11 %ecx 0Xf8 %edx 0xf4 %ebx 0xf0 %esi 0xec %edi %esp 0xfc %ebp 0X100 3
17. Main: pushl %ebp ZF SF CF PC 1 0 0 0x26 address stack register 0X100 %ebp %eax 0Xfc 0X11 %ecx 0Xf8 %esp 0X100 %edx 0xf4 %ebx 0xf0 %esi 0xec %edi %esp 0Xf8 %ebp 0X100 4
18. rrmovl %esp,%ebp ZF SF CF PC 1 0 0 0x28 address stack register 0X100 %eax 0Xfc 0X11 %ecx 0Xf8 %esp, %ebp 0X100 %edx 0xf4 %ebx 0xf0 %esi 0xec %edi %esp 0Xf8 %ebp 0Xf8 5
19. irmovl $4,%eax ZF SF CF PC 20. pushl %eax # Push 4 1 0 0 0x30 address stack register 0X100 %eax 4 0Xfc 0X11 %ecx 0Xf8 %ebp 0X100 %edx 0xf4 %esp 4 %ebx 0xf0 %esi 0xec %edi %esp 0Xf4 %ebp 0Xf8 6
21. irmovl array,%edx ZF SF CF PC 22. pushl %edx 1 0 0 0x38 address stack register 0X100 %eax 4 0Xfc 0X11 %ecx 0Xf8 %ebp 0X100 %edx 0X14 0xf4 4 %ebx 0xf0 %esp 0X14 %esi 0xec %edi %esp 0Xf0 %ebp 0Xf8 7
23. call Sum ZF SF CF PC 1 0 0 0x42 address stack register 0X100 %eax 4 0Xfc 0X11 %ecx 0Xf8 %ebp 0X100 %edx 0X14 0xf4 4 %ebx 0xf0 0X14 %esi 0xec %esp 0X3d %edi %esp 0Xec %ebp 0Xf8 8
30.Sum: pushl %ebp ZF SF CF PC 31. rrmovl %esp,%ebp 1 0 0 0x46 address stack register 0X100 %eax 4 0Xfc 0X11 %ecx 0Xf8 0X100 %edx 0X14 0xf4 4 %ebx 0xf0 0X14 %esi 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 9
32. mrmovl 8(%ebp),%ecx # ecx = Start ZF SF CF PC 33. mrmovl 12(%ebp),%edx # edx = Count 1 0 0 0x52 address stack register 0X100 %eax 4 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 0xf0 0X14 %esi 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 10
34. xorl %eax,%eax # sum = 0 ZF SF CF PC 0 0 0 0x54 address stack register 0X100 %eax 0 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 0xf0 0X14 %esi 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 11
35. andl %edx,%edx # Set condition codes ZF SF CF PC 1 0 0 0x56 address stack register 0X100 %eax 0 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 0xf0 0X14 %esi 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 12
36. je End ZF SF CF PC 1 0 0 0x5b address stack register 0X100 %eax 0 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 0xf0 0X14 %esi 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 13
37.Loop: mrmovl (%ecx),%esi # get *Start ZF SF CF PC 1 0 0 0x61 address stack register 0X100 %eax 0 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 0xf0 0X14 %esi 0Xd 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 14
38. addl %esi,%eax # add to sum ZF SF CF PC 39. irmovl $4,%ebx # 1 0 0 0x69 address stack register 0X100 %eax 0Xd 0Xfc 0X11 %ecx 0X14 0Xf8 0X100 %edx 4 0xf4 4 %ebx 4 0xf0 0X14 %esi 0Xd 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 15
40. addl %ebx,%ecx ZF SF CF PC # Start++ 41. irmovl $-1,%ebx # 1 0 0 0x71 address stack register 0X100 %eax 0Xd 0Xfc 0X11 %ecx 0X18 0Xf8 0X100 %edx 4 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xd 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 16
42. addl %ebx,%edx # Count-- ZF SF CF PC 43. jne Loop # Stop when 0 1 0 0 0x5b address stack register 0X100 %eax 0Xd 0Xfc 0X11 %ecx 0X18 0Xf8 0X100 %edx 3 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xd 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 17
37. Loop: mrmovl (%ecx),%esi # get *Start ZF SF CF PC 38. addl %esi,%eax # add to sum 1 0 0 0x63 address stack register 0X100 %eax 0Xcd 0Xfc 0X11 %ecx 0X18 0Xf8 0X100 %edx 3 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xc0 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 18
39. irmovl $4,%ebx ZF SF CF PC # 40. addl %ebx,%ecx # Start++ 1 0 0 0x6b address stack register 0X100 %eax 0Xcd 0Xfc 0X11 %ecx 0X1c 0Xf8 0X100 %edx 3 0xf4 4 %ebx 4 0xf0 0X14 %esi 0Xc0 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 19
41. irmovl $-1,%ebx ZF SF CF PC # 42. addl %ebx,%edx # Count-- 1 0 0 0x73 address stack register 0X100 %eax 0Xcd 0Xfc 0X11 %ecx 0X1c 0Xf8 0X100 %edx 2 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xc0 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 20
43. jne Loop ZF SF CF PC # Stop when 0 1 0 0 0x5b address stack register 0X100 %eax 0Xcd 0Xfc 0X11 %ecx 0X1c 0Xf8 0X100 %edx 2 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xc0 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 21
37. Loop: mrmovl (%ecx),%esi # get *Start ZF SF CF PC 38. addl %esi,%eax # add to sum 1 0 0 0x63 address stack register 0X100 %eax 0Xbcd 0Xfc 0X11 %ecx 0X1c 0Xf8 0X100 %edx 2 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xb00 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 22
39. irmovl $4,%ebx ZF SF CF PC # 40. addl %ebx,%ecx # Start++ 1 0 0 0x6b address stack register 0X100 %eax 0Xbcd 0Xfc 0X11 %ecx 0X20 0Xf8 0X100 %edx 2 0xf4 4 %ebx 4 0xf0 0X14 %esi 0Xb00 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 23
41. irmovl $-1,%ebx # ZF SF CF PC 42. addl %ebx,%edx # Count-- 1 0 0 0x73 address stack register 0X100 %eax 0Xbcd 0Xfc 0X11 %ecx 0X20 0Xf8 0X100 %edx 1 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xb00 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 24
43. jne Loop ZF SF CF PC # Stop when 0 1 0 0 0x5b address stack register 0X100 %eax 0Xbcd 0Xfc 0X11 %ecx 0X20 0Xf8 0X100 %edx 1 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xb00 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 25
37. Loop: mrmovl (%ecx),%esi # get *Start ZF SF CF PC 38. addl %esi,%eax # add to sum 1 0 0 0x63 address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X20 0Xf8 0X100 %edx 1 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 26
39. irmovl $4,%ebx ZF SF CF PC # 40. addl %ebx,%ecx # Start++ 1 0 0 0x6b address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 0X100 %edx 1 0xf4 4 %ebx 4 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 27
41. irmovl $-1,%ebx ZF SF CF PC # 42. addl %ebx,%edx # Count-- 0 0 0 0x73 address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 28
43. jne Loop ZF SF CF PC # Stop when 0 0 0 0 0x78 address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 29
44. End: rrmovl %ebp,%esp ZF SF CF PC 0 0 0 0x7a address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 %esp, %ebp 0Xf8 %esp 0Xe8 %ebp 0Xe8 30
45. popl %ebp ZF SF CF PC 0 0 0 0x7c address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 %ebp 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec %esp 0X3d %edi 0Xe8 0Xf8 %esp 0Xec %ebp 0Xf8 31
46. ret ZF SF CF PC 0 0 0 0X3d address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 %ebp 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 %esp 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 0Xf8 %esp 0Xec %ebp 0Xf8 32
ZF SF CF PC 24. rrmovl %ebp,%esp 0 0 0 0x3f address stack register 0X100 %eax 0Xabcd 0Xfc 0X11 %ecx 0X24 0Xf8 %esp, %ebp 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 0Xf8 %esp 0Xf8 %ebp 0Xf8 33
25. popl %ebp ZF SF CF PC 0 0 0 0X100 address stack register 0X100 %ebp %eax 0Xabcd 0Xfc %esp 0X11 %ecx 0X24 0Xf8 0X100 %edx 0 0xf4 4 %ebx -1 0xf0 0X14 %esi 0Xa000 0xec 0X3d %edi 0Xe8 0Xf8 %esp 0Xfc %ebp 0X100 34
Recommend
More recommend