Keil™, An ARM® Company

C166 User's Guide

huge Pointers

Pointers to huge objects are stored using four bytes (32 bits). The bytes are stored little endian or low to high order. The first word contains the 16-bit memory offset. The second word contains the segment number. The memory address is calculated as follows:

Address = (Segment * 0x10000L) + Offset

A huge pointer is stored in memory at a word boundary as follows:

 Address+0Address+1Address+2Address+3
ContentsOffset (LSB)Offset (MSB)Segment (LSB)Segment (MSB)

A huge pointer can access objects up to 64K in size in any memory area. Objects larger than 64K must be accessed using xhuge pointers.