0
에 대한 BCD 빼기 프로그램이 프로그램은 책 Programming the Z80에서 가져온 것입니다.이 프로그램은 x 바이트 BCD 빼기를 수행합니다. x는 일 수 있으며 두 피연산자의 바이트를 계산하여 실행합니다 결과적으로 루프를 통해 빼기 명령을 내리 겠지만, 여기서는 두 숫자가 동일한 바이트 수를 가진다고 가정합니다.이 숫자는 COUNT
이라고합니다. 이 번호의 주소는 N1
및 N2
이며 그 뒤에 오는 주소입니다. 내 질문은 코드의 주석에있다. 그 결과, 어드레스에 저장된Z80
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