Operand Size

The Operand Size of an expression can be set explicitly using the Type Conversion (PTR Operator), or it may be a side-effect inherited from the type of data referenced in the expression. The following table describes the operand sizes that will be assigned when an identifier is referenced in an expression:

┌─────────────────────────┬───────────────────────────────────┐
│REFERENCE                │OPERAND SIZE                       │
├─────────────────────────┼───────────────────────────────────┤
│8-Bit-Register           │1                                  │
├─────────────────────────┼───────────────────────────────────┤
│16-Bit-Register          │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│32-Bit-Register          │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│Segment-Register         │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│Control-Register         │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│Debug-Register           │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│Test-Register            │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│MMX-Register             │8                                  │
├─────────────────────────┼───────────────────────────────────┤
│Floating-Point-Register  │10                                 │
├─────────────────────────┼───────────────────────────────────┤
│BYTE                     │1                                  │
├─────────────────────────┼───────────────────────────────────┤
│SBYTE                    │1                                  │
├─────────────────────────┼───────────────────────────────────┤
│WORD                     │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│SWORD                    │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│DWORD                    │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│SDWORD                   │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│REAL4                    │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│FWORD                    │6                                  │
├─────────────────────────┼───────────────────────────────────┤
│QWORD                    │8                                  │
├─────────────────────────┼───────────────────────────────────┤
│REAL8                    │8                                  │
├─────────────────────────┼───────────────────────────────────┤
│TBYTE                    │10                                 │
├─────────────────────────┼───────────────────────────────────┤
│REAL10                   │10                                 │
├─────────────────────────┼───────────────────────────────────┤
│NEAR                     │2 or 4                             │
├─────────────────────────┼───────────────────────────────────┤
│NEAR16                   │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│NEAR32                   │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│FAR                      │4 or 6                             │
├─────────────────────────┼───────────────────────────────────┤
│FAR16                    │4                                  │
├─────────────────────────┼───────────────────────────────────┤
│FAR32                    │6                                  │
├─────────────────────────┼───────────────────────────────────┤
│Numeric-EquateName       │Inherited from equate expression   │
├─────────────────────────┼───────────────────────────────────┤
│GroupName                │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│SegmentName              │2                                  │
├─────────────────────────┼───────────────────────────────────┤
│Code-LabelNameSIZE (TYPE Code-LabelName)         │
├─────────────────────────┼───────────────────────────────────┤
│Data-LabelNameSIZE (TYPE Data-LabelName)         │
├─────────────────────────┼───────────────────────────────────┤
│Structure-FieldNameSIZE Structure-FieldName           │
├─────────────────────────┼───────────────────────────────────┤
│Record-TypeNameSIZE Record-TypeName               │
├─────────────────────────┼───────────────────────────────────┤
│Structure-TypeNameSIZE Structure-TypeName            │
├─────────────────────────┼───────────────────────────────────┤
│Union-TypeNameSIZE Union-TypeName                │
└─────────────────────────┴───────────────────────────────────┘

The Operand Size is 0 for all other identifier types.


[Back: Address Size]
[Next: Displacement]