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

asum ys
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Asum.ys

  • ---Changes to memory and registers

Ruiqin Tian

slide-2
SLIDE 2

5.init: irmovl Stack, %esp # Set up stack pointer

  • 6. irmovl Stack, %ebp # Set up base pointer

address stack 0X100 %esp, %ebp 0Xfc 0Xf8 0xf4 0xf0 0xec register %eax %ecx %edx %ebx %esi %edi %esp 0X100 %ebp 0X100 PC 0xc ZF SF CF 1

2

slide-3
SLIDE 3
  • 7. call main

address stack 0X100 %ebp 0Xfc %esp 0X11 0Xf8 0xf4 0xf0 0xec register %eax %ecx %edx %ebx %esi %edi %esp 0xfc %ebp 0X100 PC 0x24 ZF SF CF 1

3

slide-4
SLIDE 4
  • 17. Main: pushl %ebp

address stack 0X100 %ebp 0Xfc 0X11 0Xf8 %esp 0X100 0xf4 0xf0 0xec register %eax %ecx %edx %ebx %esi %edi %esp 0Xf8 %ebp 0X100 PC 0x26 ZF SF CF 1

4

slide-5
SLIDE 5
  • 18. rrmovl %esp,%ebp

address stack 0X100 0Xfc 0X11 0Xf8 %esp, %ebp 0X100 0xf4 0xf0 0xec register %eax %ecx %edx %ebx %esi %edi %esp 0Xf8 %ebp 0Xf8 PC 0x28 ZF SF CF 1

5

slide-6
SLIDE 6

address stack 0X100 0Xfc 0X11 0Xf8 %ebp 0X100 0xf4 %esp 4 0xf0 0xec

  • 19. irmovl $4,%eax
  • 20. pushl %eax # Push 4

register %eax 4 %ecx %edx %ebx %esi %edi %esp 0Xf4 %ebp 0Xf8 PC 0x30 ZF SF CF 1

6

slide-7
SLIDE 7

address stack 0X100 0Xfc 0X11 0Xf8 %ebp 0X100 0xf4 4 0xf0 %esp 0X14 0xec

  • 21. irmovl array,%edx
  • 22. pushl %edx

register %eax 4 %ecx %edx 0X14 %ebx %esi %edi %esp 0Xf0 %ebp 0Xf8 PC 0x38 ZF SF CF 1

7

slide-8
SLIDE 8

address stack 0X100 0Xfc 0X11 0Xf8 %ebp 0X100 0xf4 4 0xf0 0X14 0xec %esp 0X3d

  • 23. call Sum

register %eax 4 %ecx %edx 0X14 %ebx %esi %edi %esp 0Xec %ebp 0Xf8 PC 0x42 ZF SF CF 1

8

slide-9
SLIDE 9

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

30.Sum: pushl %ebp

  • 31. rrmovl %esp,%ebp

register %eax 4 %ecx %edx 0X14 %ebx %esi %edi %esp 0Xe8 %ebp 0Xe8 PC 0x46 ZF SF CF 1

9

slide-10
SLIDE 10

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 32. mrmovl 8(%ebp),%ecx # ecx = Start
  • 33. mrmovl 12(%ebp),%edx # edx = Count

register %eax 4 %ecx 0X14 %edx 4 %ebx %esi %edi %esp 0Xe8 %ebp 0Xe8 PC 0x52 ZF SF CF 1

10

slide-11
SLIDE 11

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 34. xorl %eax,%eax

# sum = 0

register %eax %ecx 0X14 %edx 4 %ebx %esi %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF PC 0x54

11

slide-12
SLIDE 12

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 35. andl %edx,%edx # Set condition codes

register %eax %ecx 0X14 %edx 4 %ebx %esi %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x56

12

slide-13
SLIDE 13

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 36. je End

register %eax %ecx 0X14 %edx 4 %ebx %esi %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x5b

13

slide-14
SLIDE 14

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

37.Loop: mrmovl (%ecx),%esi # get *Start

register %eax %ecx 0X14 %edx 4 %ebx %esi 0Xd %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x61

14

slide-15
SLIDE 15

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 38. addl %esi,%eax # add to sum
  • 39. irmovl $4,%ebx

#

register %eax 0Xd %ecx 0X14 %edx 4 %ebx 4 %esi 0Xd %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x69

15

slide-16
SLIDE 16

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 40. addl %ebx,%ecx

# Start++

  • 41. irmovl $-1,%ebx

#

register %eax 0Xd %ecx 0X18 %edx 4 %ebx

  • 1

%esi 0Xd %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x71

16

slide-17
SLIDE 17

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 42. addl %ebx,%edx # Count--
  • 43. jne

Loop

# Stop when 0

register %eax 0Xd %ecx 0X18 %edx 3 %ebx

  • 1

%esi 0Xd %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x5b

17

slide-18
SLIDE 18

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 37. Loop: mrmovl (%ecx),%esi # get *Start
  • 38. addl %esi,%eax # add to sum

register %eax 0Xcd %ecx 0X18 %edx 3 %ebx

  • 1

%esi 0Xc0 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x63

18

slide-19
SLIDE 19

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 39. irmovl $4,%ebx

#

  • 40. addl %ebx,%ecx

# Start++

register %eax 0Xcd %ecx 0X1c %edx 3 %ebx 4 %esi 0Xc0 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x6b

19

slide-20
SLIDE 20

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 41. irmovl $-1,%ebx

#

  • 42. addl %ebx,%edx

# Count--

register %eax 0Xcd %ecx 0X1c %edx 2 %ebx

  • 1

%esi 0Xc0 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x73

20

slide-21
SLIDE 21

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 43. jne Loop

# Stop when 0

register %eax 0Xcd %ecx 0X1c %edx 2 %ebx

  • 1

%esi 0Xc0 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x5b

21

slide-22
SLIDE 22

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 37. Loop: mrmovl (%ecx),%esi # get *Start
  • 38. addl %esi,%eax # add to sum

register %eax 0Xbcd %ecx 0X1c %edx 2 %ebx

  • 1

%esi 0Xb00 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x63

22

slide-23
SLIDE 23

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 39. irmovl $4,%ebx

#

  • 40. addl %ebx,%ecx # Start++

register %eax 0Xbcd %ecx 0X20 %edx 2 %ebx 4 %esi 0Xb00 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x6b

23

slide-24
SLIDE 24

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 41. irmovl $-1,%ebx #
  • 42. addl %ebx,%edx # Count--

register %eax 0Xbcd %ecx 0X20 %edx 1 %ebx

  • 1

%esi 0Xb00 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x73

24

slide-25
SLIDE 25

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 43. jne

Loop

# Stop when 0

register %eax 0Xbcd %ecx 0X20 %edx 1 %ebx

  • 1

%esi 0Xb00 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x5b

25

slide-26
SLIDE 26

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 37. Loop: mrmovl (%ecx),%esi # get *Start
  • 38. addl %esi,%eax

# add to sum

register %eax 0Xabcd %ecx 0X20 %edx 1 %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x63

26

slide-27
SLIDE 27

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 39. irmovl $4,%ebx

#

  • 40. addl %ebx,%ecx

# Start++

register %eax 0Xabcd %ecx 0X24 %edx 1 %ebx 4 %esi 0Xa000 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF 1 PC 0x6b

27

slide-28
SLIDE 28

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 41. irmovl $-1,%ebx

#

  • 42. addl %ebx,%edx

# Count--

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF PC 0x73

28

slide-29
SLIDE 29

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 43. jne

Loop

# Stop when 0

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF PC 0x78

29

slide-30
SLIDE 30

address stack 0X100 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 %esp, %ebp 0Xf8

  • 44. End: rrmovl %ebp,%esp

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xe8 %ebp 0Xe8 ZF SF CF PC 0x7a

30

slide-31
SLIDE 31

address stack 0X100 0Xfc 0X11 0Xf8 %ebp 0X100 0xf4 4 0xf0 0X14 0xec %esp 0X3d 0Xe8 0Xf8

  • 45. popl %ebp

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xec %ebp 0Xf8 ZF SF CF PC 0x7c

31

slide-32
SLIDE 32

address stack 0X100 0Xfc 0X11 0Xf8 %ebp 0X100 0xf4 4 0xf0 %esp 0X14 0xec 0X3d 0Xe8 0Xf8

  • 46. ret

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xec %ebp 0Xf8 ZF SF CF PC 0X3d

32

slide-33
SLIDE 33

address stack 0X100 0Xfc 0X11 0Xf8 %esp, %ebp 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 0Xf8

  • 24. rrmovl %ebp,%esp

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xf8 %ebp 0Xf8 ZF SF CF PC 0x3f

33

slide-34
SLIDE 34

address stack 0X100 %ebp 0Xfc %esp 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 0Xf8

  • 25. popl %ebp

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0Xfc %ebp 0X100 ZF SF CF PC 0X100

34

slide-35
SLIDE 35

address stack 0X100 %esp, %ebp 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 0Xf8

  • 26. ret

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0X100 %ebp 0X100 ZF SF CF PC 0X11

35

slide-36
SLIDE 36

address stack 0X100 %esp, %ebp 0Xfc 0X11 0Xf8 0X100 0xf4 4 0xf0 0X14 0xec 0X3d 0Xe8 0Xf8

  • 8. halt

register %eax 0Xabcd %ecx 0X24 %edx %ebx

  • 1

%esi 0Xa000 %edi %esp 0X100 %ebp 0X100 ZF SF CF PC

36