我刚刚开始学习汇编,我正在使用 A 和 HX 的嵌套增量循环实现一个基本的延迟子程序(还不允许使用计时器!)。
这是我的子程序:
;delay subroutine:
delay ;delay label
LDA #0 ;loads A with 0
loop_1 ;first loop
ADD #1 ;increments A
LDHX #0 ;loads HX with 0
loop_2 ;second loop
AIX #1 ;increments HX
CPHX number_2 ;compares HX to number_2
BNE loop_2 ;loops if not equal
CMP number_1 ;compares A to number_1
BNE loop_1 ;loops if not equal
RTS ;returns from delay sr
我正在尝试推导出一个公式来计算例程完成所需的周期数。
循环外循环(JSR、LDA、RTS)总和为 12
loop_1 周期 (ADD,LDHX,CMP,BNE) 总和为 10
loop_2 周期 (AIX,CPHX,BNE) 总和为 8
我在想我需要某种递归求和作为 number_1 和 number_2 的函数来解决这个问题。理想情况下,在给定 number_1 和总周期的情况下,我想逆向求解 number_2。
我一直在尝试数学,到目前为止,我得到的最接近的(通过计算结果)是
总循环数 = 循环外循环 + loop_1 循环 * number_1 *(loop_2 循环/loop_1 循环)* number_2
我意识到这没有意义,因为 loop_1 循环取消了..
有人有什么想法吗?
提前致谢 :)