FOR ... NEXT 在 Z80 彙編上

Z80 有一個特定的指令來實現迴圈計數:DJNZstanding 為“減量 B 暫存器,如果不為零則跳轉”。因此,B 是在此處理器上實現迴圈的首選暫存器。FOR … NEXT 需要向後實現,因為暫存器倒計數到零。其他 CPU(如 8086,此 CPU 使用 CX 暫存器作為迴圈計數器)可能具有類似的特定迴圈計數器暫存器和指令,其他一些 CPU 允許具有任意暫存器的迴圈命令(m68k 具有適用於任何資料暫存器的 DBRA 指令)。

; Trivial multiplication (by repeated adding, ignores zero in factors, so 
; not recommended for general use)
;
; inputs:    A = Factor 1
;            B = Factor 2
;
; output:    A = Factor 1 * Factor 2
;
; Pseudo code
; C = A : A = 0 : FOR B = Factor 2 DOWNTO 0 : A = A + C : NEXT B

mul:
     LD    C,A        ; Save Factor 1 in C register
     XOR   A          ; Clear accumulator
mLoop:
     ADD   A,C        ; Add Factor 1 to accumulator
     DJNZ  mLoop      ; Do this Factor 2 times
     RET              ; return to caller