# `pea`

[M68K Documentation](https://asm-editor.specy.app/documentation/m68k.md) › [Instructions](https://asm-editor.specy.app/documentation/m68k/instruction.md)

Web page: https://asm-editor.specy.app/documentation/m68k/instruction/pea

**Push effective address**

Category: Stack

Computes the effective address of the operand and pushes it onto the stack.

Size .l

## Flags

| Flag | Effect |
| --- | --- |
| X | not changed |
| N | not changed |
| Z | not changed |
| V | not changed |
| C | not changed |

## Forms

- `pea <ea>`
  - Operand: (An), d(An), d(An,Xn), abs, d(PC), d(PC,Xn) (control)

## Operands

- [`<ea>`](https://asm-editor.specy.app/documentation/m68k/addressing-mode.md): An operand using one of the addressing modes listed for this form. The list determines whether it can be a register, memory or an immediate value. With `opt p=68020`, an allowed `d(An,Xn)` or `d(PC,Xn)` mode also permits the corresponding 68020 indexed and memory indirect forms. See [68020 addressing](https://asm-editor.specy.app/documentation/m68k/addressing-mode/68020.md).

## Description

Like [lea](https://asm-editor.specy.app/documentation/m68k/instruction/lea.md), it does not read data at the final address, but a 68020 memory indirect operand reads a pointer while computing it.

## Example

```m68k
* --- Pushes address onto stack, SP decremented by 4 ---
move.l sp, d0 ; save sp before
pea $2000
move.l sp, d1 ; sp decreased by 4
move.l (sp), d2 ; d2 = $00002000
```
