Rev.1.07
Mar 19, 2009
Page 56 of 60
REJ03B0140-0107
7545 Group
APPENDIX
NOTES ON PROGRAMMING
Processor Status Register
1. Initializing of processor status register
Flags which affect program execution must be initialized after a
reset.
In particular, it is essential to initialize the T and D flags because
they have an important effect on calculations. Initialize these
flags at beginning of the program.
<Reason>
After a reset, the contents of the processor status register (PS) are
undefined except for the I flag which is “1”.
Fig 1.
Initialization of processor status register
2. How to reference the processor status register
To reference the contents of the processor status register (PS),
execute the PHP instruction once then read the contents of (S+1).
If necessary, execute the PLP instruction to return the PS to its
original status.
Fig 2.
Stack memory contents after PHP instruction
execution
Decimal Calculations
1. Execution of decimal calculations
The ADC and SBC are the only instructions which will yield
proper decimal notation, set the decimal mode flag (D) to “1”
with the SED instruction. After executing the ADC or SBC
instruction, execute another instruction before executing the
SEC, CLC, or CLD instruction.
Fig 3.
Instructions for decimal calculations
2. Notes on status flag in decimal mode
When decimal mode is selected, the values of three of the flags in
the status register (the N, V, and Z flags) are invalid after a ADC
or SBC instruction is executed.
The carry flag (C) is set to “1” if a carry is generated as a result
of the calculation, or is cleared to “0” if a borrow is generated.
To determine whether a calculation has generated a carry, the C
flag must be initialized to “0” before each calculation. To check
for a borrow, the C flag must be initialized to “1” before each
calculation.
3. JMP instruction
When using the JMP instruction in indirect addressing mode, do
not specify the last address on a page as an indirect address.
4. Multiplication and division instructions
(1) The index X mode (T) and the decimal mode (D) flags do
not affect the MUL and DIV instruction.
(2) The execution of these instructions does not change the
contents of the processor status register.
Initializing of flags
Main program
Reset
(S)
(S)+1
Stored PS
ADC or SBC instruction
NOP instruction
Set D flag to g1h
SEC, CLC, or CLD instruction