Data Movement Example 2 movl %esp, %ebp Stack Stack Offset Offset 12 Y 8 4 Rtn adr 4 Rtn adr o old %eb 号esp o lold %ebp 号ebp 号esp 16
16 Data Movement Example y xp Rtn adr Old %ebp %ebp %esp 0 4 8 12 Offset Stack • • • 2 movl %esp, %ebp y xp Rtn adr 0 Old %ebp %esp 4 8 12 Offset Stack • • •
Data Movement Example 3 movl 8(%ebp),%eax 4 movl 12(%ebp), %edx 5 movl (%eax), %ecx Stack Offset 6 movl %edx, (%eax) 7 movI ocX, oeax Rtn adr o old %ebI 号ebp esp
17 Data Movement Example y xp Rtn adr Old %ebp %ebp %esp 0 4 8 12 Offset Stack • • • 3 movl 8(%ebp), %eax 4 movl 12(%ebp), %edx 5 movl (%eax), %ecx 6 movl %edx, (%eax) 7 movl %ecx, %eax
Data Movement Example 8 movl %ebp, %esp 9 popl %oebp Stack Offset Y Rtn adr gesp 18
18 Data Movement Example y xp Rtn adr %esp Offset Stack • • • 8 movl %ebp, %esp 9 popl %ebp
3.5P143 Arithmetic and Logical Operations figure 3.7 P144 Instruction Effect Description leal S, dD<&s Load effective address inc D DED+iNcrement decl D DAD-1Decrement neg D D D Negate notl D DE D Complement addl S, DD<D+S Add subl S,DD<D-SSubtract imull S, d DED*s Multiply
19 Arithmetic and Logical Operations Figure 3.7 P144 Instruction Effect Description leal S, D D &S Load effective address incl D D D + 1 Increment decl D D D – 1 Decrement negl D D -D Negate notl D D ~D Complement addl S, D D D + S Add subl S, D D D – S Subtract imull S, D D D * S Multiply 3.5 P143
Examples for Lea Instruction(Practice Problem 3.3 P143) %eax holds x %ecx holds y 七 Xpression Result leal 6(%eax), %edx 6+X leal (%eax, %ecx), %edx leal (%eax, %ecx, 4), %edxx+4*y lal7(%eax,‰eax,8),"‰edx7+9*x leal OXA(%ecx, 4), %edx 10+4*, eal9(%eax,%ecx,2),‰ed×9x+2*
20 Examples for Lea Instruction (Practice Problem 3.3 P143) • %eax holds x, %ecx holds y leal 6(%eax), %edx 6+x leal (%eax, %ecx), %edx x+y leal (%eax, %ecx, 4), %edx x+4*y leal 7(%eax, %eax, 8), %edx 7+9*x leal 9(%eax, %ecx, 2), %edx 9+x+2*y leal 0xA(, %ecx, 4), %edx 10+4*y Expression Result