Behaviors and restrictions – Intel Extensible Firmware Interface User Manual

Page 804

Advertising
background image

Extensible Firmware Interface Specification

19-30

12/01/02

Version 1.10

Table 19-21 JMP Instruction Encoding

BYTE DESCRIPTION

Bit Description

7

0 = Immediate/index data absent

1 = Immediate/index data present

6

0 = JMP32

1 = JMP64

0

0..5

Opcode = 0x01

Bit Description

7

0 = Unconditional jump

1 = Conditional jump

6

0 = Jump if

Flags.C

is clear (cc)

1 = Jump if

Flags.C

is set (cs)

5

Reserved = 0

4

0 = Absolute address

1 = Relative address

3

0 = Operand 1 direct

1 = Operand 1 indirect

1

0..2 Operand

1

2..5

Optional 32-bit immediate data/index for JMP32

2..9

64-bit immediate data for JMP64

BEHAVIORS AND RESTRICTIONS:

• Operand 1 fields are ignored for the JMP64 forms

• If the instruction is JMP32, and Operand 1 register = R0, then the register contents are assumed

to be 0.

• If the instruction is JMP32, and Operand 1 is indirect, then the immediate data is interpreted as

an index, and the jump offset or address is fetched as a 32-bit signed value from address [R

1

+

Index32]

• If the instruction is JMP32, and Operand 1 is direct, then the immediate data is considered a

signed immediate value such that Operand 1 = R

1

+ Immed32

• If the jump is unconditional, then Byte1:Bit6 (condition) is ignored
• If the instruction is JMP64, and Byte0:Bit7 is clear (no immediate data), then an instruction

encoding exception is generated.

• If the instruction is JMP32, and Operand 2 is indirect, then the Operand 2 value is read as a

natural value from memory address [R

1

+ Index32]

• An alignment check exception is generated if the jump is taken and the target address is odd.

Advertising