@Override
  public OperationResult executeFixedCostOperation(final MessageFrame frame, final EVM evm) {
    Code code = frame.getCode();
    if (code.getEofVersion() == 0) {
      return InvalidOperation.INVALID_RESULT;
    }
    int pc = frame.getPC();
    int imm = code.readU8(pc + 1);
    int n = (imm >> 4) + 1;
    int m = (imm & 0x0F) + 1 + n;

    final Bytes tmp = frame.getStackItem(n);
    frame.setStackItem(n, frame.getStackItem(m));
    frame.setStackItem(m, tmp);
    frame.setPC(pc + 1);

    return exchangeSuccess;
  }
Instantiates a new Exchange operation.

@param gasCalculator the gas calculator
evm/src/main/java/org/hyperledger/besu/evm/operation/ExchangeOperation.java