End aside 398 chapter 8 exceptional control flow 82

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: segment occupies 0x104 bytes in memory. However, only the first 0xe8 bytes of these come from the sections of the executable file. Why the discrepancy? Homework Problem 7.12 [Category 2]: The swap routine in Figure 7.10 contains five relocated references. For each relocated reference, give its line number in Figure 7.10, its run-time memory address, and its value. The original code and relocation entries in the swap.o module are shown in Figure 7.19. Line # in Fig.7.10 Address Value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 00000000 <swap>: 0: 55 1: 8b 15 00 00 00 00 7: c: e: 15: a1 04 00 00 00 89 e5 c7 05 00 00 00 00 04 00 00 00 push %ebp mov 0x0,%edx 3: R_386_32 bufp0 mov 0x4,%eax 8: R_386_32 buf mov %esp,%ebp movl $0x4,0x0 10: R_386_32 bufp1 14: R_386_32 buf mov %ebp,%esp mov (%edx),%ecx mov %eax,(%edx) mov 0x0,%eax 1f: R_386_32 bufp1 mov %ecx,(%eax) pop %ebp ret get *bufp0=&buf[0] relocation entry get buf[1] relocation entry bufp1 = &buf[1]; relocation entry relocation entry temp = buf[0]; buf[0]=buf[1]; get *bufp1=&buf[1] relocation entry buf[1]=temp; 18: 1a: 1c: 1e: 23: 25: 26: 89 8b 89 a1 ec 0a 02 00...
View Full Document

This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.

Ask a homework question - tutors are online