Program Counter - Holtek HT45F23A Manual

Tinypower flash mcu with opa & comparators
Table of Contents

Advertisement

For instructions involving branches, such as jump or call instructions, two instruction cycles are
required to complete instruction execution. An extra cycle is required as the program takes one
cycle to first obtain the actual jump or call address and then another cycle to actually execute the
branch. The requirement for this extra cycle should be taken into account by programmers in timing
sensitive applications.
1
M O V A , [ 1 2 H ]
2
C A L L D E L A Y
3
C P L [ 1 2 H ]
4
:
5
:
6
N O P
D E L A Y :

Program Counter

During program execution, the Program Counter is used to keep track of the address of the
next instruction to be executed. It is automatically incremented by one each time an instruction
is executed except for instructions, such as "JMP" or "CALL" that demand a jump to a non-
consecutive Program Memory address. Note that the Program Counter width varies with the
Program Memory capacity depending upon which device is selected. However, it must be noted that
only the lower 8 bits, known as the Program Counter Low Register, are directly addressable by the
application program.
When executing instructions requiring jumps to non-consecutive addresses such as a jump
instruction, a subroutine call, interrupt or reset, etc., the microcontroller manages program control
by loading the required address into the Program Counter. For conditional skip instructions, once
the condition has been met, the next instruction, which has already been fetched during the present
instruction execution, is discarded and a dummy cycle takes its place while the correct instruction is
obtained.
The lower byte of the Program Counter, known as the Program Counter Low register or PCL, is
available for program control and is a readable and writeable register. By transferring data directly
into this register, a short program jump can be executed directly. However, as only this low byte
is available for manipulation, the jumps are limited to the present page of memory that is 256
locations. When such program jumps are executed, it should also be noted that a dummy cycle will
be inserted.
The lower byte of the Program Counter is fully accessible under program control. Manipulating the
PCL might cause program branching, so an extra cycle is needed to pre-fetch. Further information
on the PCL register can be found in the Special Function Register section.
Rev. 1.40
TinyPower
Flash MCU with OPA & Comparators
TM
F e t c h I n s t . 1
E x e c u t e I n s t . 1
F e t c h I n s t . 2
Instruction Fetching
Program Counter
Device
Program Counter High Byte
HT45F23A
PC10~PC8
HT45F24A
PC11~PC8
20
HT45F23A/HT45F24A
E x e c u t e I n s t . 2
F e t c h I n s t . 3
F l u s h P i p e l i n e
F e t c h I n s t . 6
E x e c u t e I n s t . 6
F e t c h I n s t . 7
PCL Register
PCL7~PCL0
PCL7~PCL0
March 29, 2019

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the HT45F23A and is the answer not in the manual?

Questions and answers

This manual is also suitable for:

Ht45f24a

Table of Contents