; PROGRAM TO DEMONSTRATE BCD (BINARY CODED DECIMAL). ; 9h IN HEX IS 9 DECIMAL. ; Ah IN HEX IS 10 DECIMAL. ; IF WE WANT TO SHOW A HEX VALUE LIKE Ah BUT IN B.C.D., WE WILL NEED TO ADD 6 TO IT. ; EXAMPLES: ; Ah + 6h = 10h. ; Bh + 6h = 11H ; Ch + 6h = 12h ; Dh + 6h = 13h ; Eh + 6h = 14h ; Fh + 6h = 15h ; .ORG 0000h ; CHANGE ON REASSEMBLY. START: LD DE, 0 ; D=BCD, E=BINARY. LD IX, 0030h ; BCD BUFFER (30h TO 93h). LD IY, 00A0h ; BINARY BUFFER (A0h TO 103h). LD B, 100 ; COUNT. LOOP: LD (IX +0), D ; STORE BCD. LD (IY +0), E ; STORE BINARY. INC IX ; BUMP BCD POINTER. INC IY ; BUMP BINARY POINTER. LD A, D ; GET BCD. ADD A, 1 ; ADD 1. DAA ; DECIMAL ADJUST. IF ANY DIGIT VALUE IS NOT BETWEEN A AND F, THEN DAA DOES NOTHING. LD D, A ; SAVE BCD VALUE. LD A, E ; GET BINARY . ADD A, 1 ; ADD 1. LD E, A ; SAVE BINARY VALUE. DJNZ LOOP ; LOOP IF NOT 100. ; LOOP1: JR LOOP1 ; LOOP HERE IF DONE. HALT .END