Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
19-10 12/01/02 Version 1.10
19.7.1 Instruction Opcode Byte Encoding
The first byte of an instruction is the opcode byte, and an instructions actual opcode value
consumes 6 bits of this byte. The remaining two bits will typically be used to indicate operand sizes
and/or presence or absence of index or immediate data. Table 19-6 defines the bits in the opcode
byte for most instructions, and their usage.
Table 19-6. Opcode Byte Encoding
Bit Sym Description
6..7 Modifiers One or more of:
Index or immediate data present/absent
Operand size
Index or immediate data size
0..5 Op Instruction opcode
For those instructions that use bit 7 to indicate the presence of an index or immediate data and bit 6
to indicate the size of the index or immediate data, if bit 7 is 0 (no immediate data), then bit 6 is
ignored by the VM. Otherwise, unless otherwise specified for a given instruction, setting unused
bits in the opcode byte results in an instruction encoding exception when the instruction is
executed. Setting the modifiers field in the opcode byte to reserved values will also result in an
instruction encoding exception.
19.7.2 Instruction Operands Byte Encoding
The second byte of most encoded instructions is an operand byte, which encodes the registers for
the instruction operands and whether the operands are direct or indirect. Table 19-7 defines the
encoding for the operand byte for these instructions. Unless otherwise specified for a given
instruction, setting unused bits in the operand byte results in an instruction encoding exception
when the instruction is executed. Setting fields in the operand byte to reserved values will also
result in an instruction encoding exception.
Table 19-7. Operand Byte Encoding
Bit Description
7 0 = Operand 2 is direct
1 = Operand 2 is indirect
4..6 Operand 2 register
3 0 = Operand 1 is direct
1 = Operand 1 is indirect
0..2 Operand 1 register