© 2000 Scenix Semiconductor, Inc. All rights reserved.
23
SX Users Manual Rev. 3.1
www.scenix.com
Chapter 2 Architecture
The organization of the data memory banks is somewhat different for the various SX family 8
members:
SX18/SX20/SX28AC and SX18/20/28AC75: eight banks of 16 bytes per bank, with 8 global
registers mapped to bank 0
SX48BD/SX52BD: 16 banks of sixteen bytes per bank, with 16 global registers mapped into a
separate bank
The following sections describe the bank organization in detail.
2.3.2
SX18/20/28AC and SX18/20/28AC75 Addressing Modes and FSR Register
The data memory of the SX18AC, SX20AC, SX28AC, SX18AC75, SX20AC75, or SX28AC75 is a
RAM-based register set consisting of 136 general-purpose registers and eight dedicated-purpose
registers. All of these registers are eight bits wide. The registers are organized into eight banks,
designated Bank 0 through Bank 7.
Each SX instruction that accesses a data memory register contains a 5-bit field in the instruction
opcode that specifies the register to be accessed. The abbreviation fr represents the 5-bit register
address designator. For example, the instruction description mov fr,W means that a 5-bit value or
label must be substituted for fr in the instruction, such as mov $0F,W (to move the contents of the
working register W into file register 0Fh).
The SX device can be programmed to use any one of the eight banks at any given time. The three high-
order bits in the File Select Register (FSR) specify the current bank number. To change from one bank
to another, the program can either write an eight-bit value to the FSR register or use the bank
instruction. The bank instruction writes the three bank-selection bits in the FSR register without
affecting the other bits in the register. Bank 0 is selected by default upon power-up or reset.
Within each bank, there are 32 available addresses, ranging from 00h to 1Fh. Table 2-1 shows the
organization of file registers in the memory-mapped address space. The numbers along the left side the
table (ranging from $00 to $1F) show the 32 possible register addresses that can be specified in the
instruction. The bank numbers listed across the top (ranging from 0 to 7) are the numbers that can be
programmed into the three high-order bits of the FSR register. The entries inside the table show the
registers accessed by each combination of register address and bank selection.
The 5-bit register addresses along the left side are shown as they are written in the syntax of the SX
assembly language, using a dollar sign ($) indicating the beginning of a hexadecimal value. Inside the
table, the register addresses are shown as 8-bit hexadecimal values.