EasyManua.ls Logo

Holtek HT46R47 - Stack; Arithmetic and Logic Unit - ALU

Holtek HT46R47
162 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Stack
This is a special part of the memory which is used to save the contents of the Program Counter
only. The stack can have between 6, 8 or 16 levels depending upon which device is selected and is
neither part of the data nor part of the program space, and is neither readable nor writable. The acti
-
vated level is indexed by the stack pointer (SP) and is neither readable nor writeable. At a subrou
-
tine call or interrupt acknowledge signal, the contents of the Program Counter are pushed onto the
stack. At the end of a subroutine or an interrupt routine, signaled by a return instruction (RET or
RETI), the Program Counter is restored to its previous value from the stack. After a chip reset, the
SP will point to the top of the stack.
If the stack is full and an enabled interrupt takes place, the interrupt request flag will be recorded
but the acknowledge signal will be inhibited. When the stack pointer is decremented (by RET or
RETI), the interrupt will be serviced. This feature prevents stack overflow allowing the program
-
mer to use the structure more easily. However, when the stack is full, a CALL subroutine instruc
-
tion can still be executed which will result in a stack overflow. Precautions should be taken to avoid
such cases which might cause unpredictable program branching.
Note
1. For the HT46R47/HT46C47 and HT46R22/HT46C22, N=6, i.e. 6 levels of stack available.
2. For the HT46R23/HT46C23, N=8, i.e. 8 levels of stack available.
3. For the HT46R24/HT46C24, N=16, i.e. 16 levels of stack available.
Arithmetic and Logic Unit - ALU
The arithmetic-logic unit or ALU is a critical area of the microcontroller that carries out arithmetic
and logic operations of the instruction set. Connected to the main microcontroller data bus, the
ALU receives related instruction codes and performs the required arithmetic or logical operations
after which the result will be placed in the specified register. As these ALU calculation or opera
-
tions may result in carry, borrow or other status changes, the status register will be correspond
-
ingly updated to reflect these changes. The ALU supports the following functions:
·
Arithmetic operations ADD, ADDM, ADC, ADCM, SUB, SUBM, SBC, SBCM, DAA
·
Logic operations AND, OR, XOR, ANDM, ORM, XORM, CPL, CPLA
·
Rotation RRA, RR, RRCA, RRC, RLA, RL, RLCA, RLC
·
Increment and Decrement INCA, INC, DECA, DEC
·
Branch decision, JMP, SZ, SZA, SNZ, SIZ, SDZ, SIZA, SDZA, CALL, RET, RETI
A/D Type MCU
18
P r o g r a m C o u n t e r
S t a c k L e v e l 1
S t a c k L e v e l 2
S t a c k L e v e l 3
S t a c k L e v e l N
P r o g r a m
M e m o r y
T o p o f S T A C K
S t a c k
P o i n t e r
B o t t o m o f S T A C K

Table of Contents