该程序取自Programming the Z80一书,该程序旨在进行 x 字节 BCD 减法,x 可以是任何整数,这是通过计算两个操作数的字节并通过循环依次执行减法指令,但是在这里,我们将假设这两个数字具有相同的字节数,我们将其称为COUNT
. 这些号码的地址是N1
和N2
以及后面的地址。我的问题在代码的注释中。
BCDPAK LD B, COUNT
LD DE, N2
LD HL, N1
AND A ;Clear carry
MINUS LD A, (DE)
SBC A, (HL)
DAA ;Decimal adjust the result
LD (HL), A ;Store the result in HL
INC DE
INC HL ;Doesn't that overwrite the result?
DJNZ MINUS ;Decrement B, loop until B = 0