Push, Push syntax, Description – Intel Extensible Firmware Interface User Manual

Page 827: Operation, Behaviors and restrictions

Advertising
background image

EFI Byte Code Virtual Machine

Version 1.10

12/01/02

19-53

PUSH

SYNTAX:

PUSH[32|64] {@}R

1

{Index16|Immed16}

DESCRIPTION:

Adjust the stack pointer R0 and store a 32-bit (PUSH32) or 64-bit (PUSH64) Operand 1 value on
the stack.

OPERATION:

R0 <= R0 - 4 (PUSH32)

R0 <= R0 - 8 (PUSH64)

[R0] <= Operand 1

Table 19-39. PUSH Instruction Encoding

BYTE DESCRIPTION

Bit Description

7

0 = Immediate/index absent

1 = Immediate/index present

6

0 = 32-bit operation

1 = 64-bit operation

0

0..5

Opcode = 0x2B

Bit Description

7..4

Reserved = 0

3

0 = Operand 1 direct

1 = Operand 1 indirect

1

0..2 Operand

1

2..3

Optional 16-bit immediate data/index

BEHAVIORS AND RESTRICTIONS:

• If Operand 1 is direct, and an index/immediate data is specified, then the immediate data is read

as a signed value and is added to the Operand 1 register contents such that Operand 1 = R

1

+

Immed16.

• If Operand 1 is indirect, and an index/immediate data is specified, then the immediate data is

interpreted as a natural index and the pushed value is read from [R

1

+ Index16].

Advertising