# Class: com.pnfsoftware.jeb.core.output.code.AssemblyItem

Class for code items. Code items are generated by [CodeDocument](CodeDocument), which are reserved for [ICodeUnit](ICodeUnit)s. IDs of code items have a special format: the upper\-8 bits are used to specify the type of the item. Negative items \(those whose upper 8\-bits will be 1xxxxxxx\) are using reserved types, in the range 0x80\-0xFF. When using a well\-known type, [getItemObject\(\)](ICodeUnit#getItemObject(long)) should return an adequate object, as specified by the contract. 

 Well\-known item types: 
 
- 0x81: address \- the item object should be a Long representing the address
-  
- 0x82: register \- the item object should be a Long whose lower 32\-bit are an Integer, representing an index into an [IRegisterData](IRegisterData)
-  
- 0x83: mnemonic \- TO BE DEFINED, DO NOT USE
-

## Constructor: AssemblyItem
- parameter: `offset`, type: `int`
- parameter: `length`, type: `int`

Description: Create a plain assembly item without class or action metadata.
parameter: offset: item offset within the line
parameter: length: item length

## Constructor: AssemblyItem
- parameter: `offset`, type: `int`
- parameter: `length`, type: `int`
- parameter: `classId`, type: `com.pnfsoftware.jeb.core.output.ItemClassIdentifiers`
- parameter: `itemId`, type: `long`
- parameter: `flags`, type: `int`

Description: Create an assembly item with visual and actionable metadata.
parameter: offset: item offset within the line
parameter: length: item length
parameter: classId: optional class identifier
parameter: itemId: optional actionable item identifier
parameter: flags: optional item flags

## Static Field: ITEM_TYPE_ADDRESS
Type: `long`

Constant value: `-9151314442816847872`
Description: Identifier for address items

## Static Field: ITEM_TYPE_CLASS
Type: `long`

Constant value: `-8430738502437568512`
Description: Identifier for class objects.

## Static Field: ITEM_TYPE_DATA
Type: `long`

Constant value: `-8574853690513424384`
Description: Identifier for data objects

## Static Field: ITEM_TYPE_FIELD
Type: `long`

Constant value: `-8358680908399640576`
Description: Identifier for field objects; do not confuse with [#ITEM_TYPE_STRUCTFIELD](#ITEM_TYPE_STRUCTFIELD).

## Static Field: ITEM_TYPE_IDENT
Type: `long`

Constant value: `-8502796096475496448`
Description: Identifier for identifiers such as local names.

## Static Field: ITEM_TYPE_IMMEDIATE
Type: `long`

Constant value: `-8935141660703064064`
Description: Identifier for immediate items

## Static Field: ITEM_TYPE_LOCAL
Type: `long`

Constant value: `-8863084066665136128`
Description: Identifier for local variable items

## Static Field: ITEM_TYPE_METHOD
Type: `long`

Constant value: `-8718968878589280256`
Description: Identifier for method/routine/function objects

## Static Field: ITEM_TYPE_MNEMONIC
Type: `long`

Constant value: `-9007199254740992000`
Description: Identifier for mnemonic items

## Static Field: ITEM_TYPE_PACKAGE
Type: `long`

Constant value: `-8286623314361712640`
Description: Identifier for packages

## Static Field: ITEM_TYPE_REGISTER
Type: `long`

Constant value: `-9079256848778919936`
Description: Identifier for register items

## Static Field: ITEM_TYPE_STRUCTFIELD
Type: `long`

Constant value: `-8646911284551352320`
Description: Identifier for structures' fields

## Static Field: ITEM_TYPE_TYPE
Type: `long`

Constant value: `-8791026472627208192`
Description: Identifier for types

