asum ys

Asum.ys ----Changes to memory and registers Ruiqin Tian 5.init: - PowerPoint PPT Presentation

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


  1. Asum.ys ----Changes to memory and registers Ruiqin Tian

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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