This preview shows page 1. Sign up to view the full content.
Unformatted text preview: equence earlier, partitioned into groups of 1 to 5 bytes each. Each of these groups is a single instruction, with the assembly language equivalent shown on the right. Several features are worth noting: ¯ ¯ IA32 instructions can range in length from 1 to 15 bytes. The instruction encoding is designed so that commonly used instructions and ones with fewer operands require a smaller number of bytes than do less common ones or ones with more operands. The instruction format is designed in such a way that from a given starting position, there is a unique decoding of the bytes into machine instructions. For example, only the instruction pushl %ebp can start with byte value 55. 96 CHAPTER 3. MACHINE-LEVEL REPRESENTATION OF C PROGRAMS ¯ ¯ ¯ The disassembler determines the assembly code based purely on the byte sequences in the object ﬁle. It does not require access to the source or assembly-code versions of the program. The disassembler uses a slightly different naming convention for the instructions than does our example, it has omi...
View Full Document
- Spring '10
- The American