# Class: com.pnfsoftware.jeb.core.units.code.asm.simulator.InsnEmulator

Main class that can emulate an instruction and retrieve the correct result. It is based on:
 \- UPDATE\_\*\*\* which provides the field\(s\) to be updated
 \- JUMP\_\*\*\* which computes the new value to assign

## Constructor: InsnEmulator
- parameter: `flags`, type: `int`

Description: Create an instruction emulator.
parameter: flags: emulator flags

## Static Field: JUMP_LAST_OPERAND
Type: `int`

Constant value: `256`
Description: Use the last operand as the jump target.

## Static Field: JUMP_MASK
Type: `int`

Constant value: `65280`
Description: What is the new value: from 0x0100 to 0xFF00

## Static Field: LINK
Type: `int`

Constant value: `65536`
Description: saves the return address in LR

## Static Field: NO_FLAG
Type: `int`

Constant value: `0`
Description: No flag.

## Static Field: UPDATE_MASK
Type: `int`

Constant value: `255`
Description: What is updated: from 0x00 to 0xFF

## Static Field: UPDATE_NONE
Type: `int`

Constant value: `0`
Description: No update.

## Static Field: UPDATE_PC
Type: `int`

Constant value: `1`
Description: Always Jump

## Method: getBranchType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.simulator.IInsnEmulator.BranchType`


## Method: getFlags
- return type: `int`

Description: Get the emulator flags.
return: flags

## Method: isPCUpdated
- return type: `boolean`


