Cycle neutral branching#
General Information
Author: Michael J. Mahon
Assembler: generic
From Michael J. Mahon:
I've found it useful to devise macros to do certain conditional operations in constant time. For example, "increment Y if carry set" (with A volatile) is:
BCS *+3 ; Branch to INY LDA $C8 ; $C8 = INY
If Carry is set, the branch takes 3 cycles and the INY 2. If Carry is clear, the branch takes 2 cycles and the LDA 3. So this CINY macro always takes 5 cycles.
Add new attachment
Only authorized users are allowed to upload new attachments.