# Class: com.pnfsoftware.jeb.core.output.code.AssemblyItem
- Super class: `com.pnfsoftware.jeb.core.output.text.impl.TextItem`

Class for code items. Code items are generated by [CodeDocument](com.pnfsoftware.jeb.core.output.code.CodeDocument.md), which are reserved for  [ICodeUnit](com.pnfsoftware.jeb.core.units.code.ICodeUnit.md)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](com.pnfsoftware.jeb.core.units.code.asm.processor.IRegisterData.md)  
- 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 Final Field: ITEM_TYPE_ADDRESS
Type: `long`

Constant value: `-9151314442816847872`
Description: Identifier for address items

## Static Final Field: ITEM_TYPE_CLASS
Type: `long`

Constant value: `-8430738502437568512`
Description: Identifier for class objects.

## Static Final Field: ITEM_TYPE_DATA
Type: `long`

Constant value: `-8574853690513424384`
Description: Identifier for data objects

## Static Final 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 Final Field: ITEM_TYPE_IDENT
Type: `long`

Constant value: `-8502796096475496448`
Description: Identifier for identifiers such as local names.

## Static Final Field: ITEM_TYPE_IMMEDIATE
Type: `long`

Constant value: `-8935141660703064064`
Description: Identifier for immediate items

## Static Final Field: ITEM_TYPE_LOCAL
Type: `long`

Constant value: `-8863084066665136128`
Description: Identifier for local variable items

## Static Final Field: ITEM_TYPE_METHOD
Type: `long`

Constant value: `-8718968878589280256`
Description: Identifier for method/routine/function objects

## Static Final Field: ITEM_TYPE_MNEMONIC
Type: `long`

Constant value: `-9007199254740992000`
Description: Identifier for mnemonic items

## Static Final Field: ITEM_TYPE_PACKAGE
Type: `long`

Constant value: `-8286623314361712640`
Description: Identifier for packages

## Static Final Field: ITEM_TYPE_REGISTER
Type: `long`

Constant value: `-9079256848778919936`
Description: Identifier for register items

## Static Final Field: ITEM_TYPE_STRUCTFIELD
Type: `long`

Constant value: `-8646911284551352320`
Description: Identifier for structures' fields

## Static Final Field: ITEM_TYPE_TYPE
Type: `long`

Constant value: `-8791026472627208192`
Description: Identifier for types

