S3F84B8_UM_REV 1.00 2 ADDRESS SPACES2-152.4.2 4-BIT WORKING REGISTER ADDRESSINGEach register pointer defines a movable 8 byte slice of working register space. The address information stored ina register pointer serves as an addressing “window” that makes it possible for instructions to access workingregisters efficiently using short 4-bit addresses. When an instruction addresses a location in the selected workingregister area, the address bits are concatenated in the following way to form a complete 8-bit address. The high-order bit of the 4-bit address selects one of the register pointers (“0” selects RP0 and “1” selectsRP1). The five high-order bits in the register pointer select an 8 byte slice of the register space. The three low-order bits of the 4-bit address select one of the eight registers in the slice.As shown in Figure 2-12, the result of this operation is that the five high-order bits from register pointer areconcatenated with the three low-order bits from instruction address to form the complete address. If the addressstored in register pointer remains unchanged, the three bits from the address will always point to an address in thesame 8 byte register slice.Figure 2-13 shows a typical example of 4-bit working register addressing. The high-order bit of instruction“INC R6” is “0”, which selects the RP0. The five high-order bits stored in RP0 (01110B) are concatenated withthree low-order bits of instruction’s 4-bit address (110B) to produce the register address 76H (01110110B).Together they create an8-bit register addressRegister pointerprovides fivehigh-order bitsAddress OPCODESelectsRP0 or RP1RP1RP04-bit addressprovides threelow-order bitsFigure 2-12 4-Bit Working Register Addressing