English
Language : 

HPC46100 Datasheet, PDF (29/32 Pages) National Semiconductor (TI) – HPC46100 High-Performance microController with DSP Capability
Addressing Modes (Continued)
Double Register Indirect Using the B and X Registers
Used only with Reset Set IF and IF NOT bit instructions a
specific bit within the 64 kbyte address range is addressed
using the B and X registers The address of a byte of memo-
ry is formed by adding the contents of the B register to the
most significant 13 bits of the X register The specific bit to
be modified or tested within the byte of memory is selected
using the least significant 3 bits of register X
Code Efficiency
One of the most important criteria of a single chip microcon-
troller is code efficiency The more efficient the code the
more features that can be put on a chip The memory size
on a chip is fixed so if code is not efficient features may
have to be sacrificed or the programmer may have to buy a
larger more expensive version of the chip
The HPC46100 has been designed to be extremely code-ef-
ficient The HPC46100 looks very good in all the standard
coding benchmarks however it is not realistic to rely only
on benchmarks Many large jobs have been programmed
onto the HPC46100 and the code savings over other popu-
lar microcontrollers has been considerable Reasons for this
saving of code include the following
SINGLE BYTE INSTRUCTIONS
The majority of instructions on the HPC46100 are single-
byte There are two especially code-saving instructions JP
is a 1-byte jump True it can only jump within a range of plus
or minus 32 but many loops and decisions are often within
a small range of program memory
JSRP is a 1-byte call subroutine The user makes a table of
his 16 most frequently called subroutines and these calls
will only take one byte Most other micros require two and
even three bytes to call a subroutine The user does not
have to decide which subroutine addresses to put into his
table the assembler can give him this information
EFFICIENT SUBROUTINE CALLS
The 2-byte JSR instructions can call any subroutine within
plus or minus 1k of program memory
MULTIFUNCTION INSTRUCTION FOR DATA
MOVEMENT AND PROGRAM LOOPING
The HPC46100 has single-byte instructions that perform
multiple tasks For example the XS instruction will do the
following
1 Exchange A and memory pointed to by the B register
2 Increment or decrement the B register
3 Compare the B register to the K register
4 Generate a conditional skip if B has passed K
The value of this multipurpose instruction becomes evident
when looping through sequential areas of memory and exit-
ing when the loop is finished
BIT MANIPULATION INSTRUCTIONS
Any bit of memory I O or registers can be set reset or
tested by the single byte bit instructions The bits can be
addressed directly or indirectly Since all registers and I O
are mapped into the memory it is very easy to manipulate
specific bits to do efficient control
MULTIPLY AND DIVIDE INSTRUCTIONS
The HPC46100 has 16-bit multiply 16-bit by 16-bit divide
and 32-bit by 16-bit divide instructions This saves both
code and time Multiply and divide can use immediate data
or data from memory The ability to multiply and divide by
immediate data saves code since this function is often
needed for scaling base conversion computing indexes of
arrays etc
29