Move Instructions Format The only possible combinations of the (src, dest) are (immediate, register (memory, register) oad (register, register (immediate, memory store (register, memory) store
6 Move Instructions • Format – The only possible combinations of the (src, dest) are • (immediate, register) • (memory, register) load • (register, register) • (immediate, memory) store • (register, memory) store
Data Movement Example P139 mov5O×4050,%ea immediate register movl %ebp, esp register register movl (%edx, %ecx), %eax memory register mo$-17,(%esp) mmediate memory movl %eax, -12(%ebp) register memory
7 Data Movement Example P139 movl $0x4050, %eax immediate register movl %ebp, %esp register register movl (%edx, %ecx), %eax memory register movl $-17, (%esp) immediate memory movl %eax, -12(%ebp) register memory
Data Movement Example P139 Initial value dh=8d ‰eax=98765432 mob %dh,%a ‰eax=9876548d 2 most%dh,%eax%ea×=千千ff8d (Move sign-extended byte) 3 movzbl %dh %eax %eax=0000008d ( Move zero-extended byte)
8 Data Movement Example P139 Initial value %dh=8d %eax =98765432 1 movb %dh, %al %eax=9876548d 2 movsbl %dh, %eax %eax=ffffff8d (Move sign-extended byte) 3 movzbl %dh, %eax %eax=0000008d ( Move zero-extended byte)
Stack operations Figure 3.5 P140 %eax 0x123 %edx O esp0x×108 Increasing address 号esp—0x108 Stack“top
9 Stack operations Figure 3.5 P140 %eax 0x123 %edx 0 %esp 0x108 Increasing address 0x108 Stack “top” %esp
Stack operations %eax 0x123 %edx O esp0x×104 push‰%eax 0x108 esp 0x104 ox123 Stack“top
10 Stack operations %eax 0x123 %edx 0 %esp 0x104 0x104 Stack “top” 0x123 0x108 %esp pushl %eax