1

我刚刚开始学习汇编,我正在使用 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 循环取消了..

有人有什么想法吗?

提前致谢 :)

4

0 回答 0