TITLE	suma_doble
		
		ORG	1000
	OPER1	DEFW	0256
	OPER2	DEFW	0256
	HELP	DEFS    1
	HELP1   DEFS    2 
	PAR     DEFS    1
	PAR1	DEFS	2
	ACARREO	DEFB	0   ;ACARREO INICIALIZADO EN CERO	
		
		ORG	0
		JZ	BEGIN
		JNZ	BEGIN
 
     T_MAYORA91:RET
 
       MAYORA91:LD	Y
		AND     #0F
		SUB	#9
		LD	#0
		ADC	#0
		JZ	CONTINUA1   ;cuando es mayor a 9
		JNZ	CONTINUA2   ;cuando es menor a 9
      
      CONTINUA1:ADD	#9  	    ;RECUPERA LA LETRA
		ADD	#6          ;HACE LA SUMA DECIMAL
		SUB	#10         ;LE RESTE LO DEL ACARREO	
		STO     HELP        ;deja el bis bajo de suma decimal
		LD	#10
		STO     ACARREO	
		JZ      T_MAYORA91
		JNZ	T_MAYORA91
      CONTINUA2:ADD	#9
		STO	HELP
		LD	#0
		STO     ACARREO	
                JZ	T_MAYORA91
		JNZ	T_MAYORA91
      
      SUMA_BITB:LD	#1
		ADD	#0F
		LD  	X
		ADC	Y
		AND	#0F
		STO	PAR
		LD	#1
		ADD	#0FF
		LD	PAR		
		ADC	ACARREO
		STO	HELP
		RET
	
     T_MAYORA92:RET
 
       MAYORA92:LD	Y
		AND     #0F0
		SUB	#90
		LD	#0
		ADC	#0
		JZ	CONTINUAA   ;CUANDO ES MAYOR A 9
		JNZ	CONTINUAB   ;cuando es menor a 9
      
      CONTINUAA:ADD	#90  	    ;RECUPERA LA LETRA
		ADD	#60         ;HACE LA SUMA DECIMAL
		SUB	#10  	    ;LE RESTE LO DEL ACARREO	
		STO     HELP1 	    ;deja el bis bajo de suma decimal
		LD	#10
		STO     ACARREO	
		JZ      T_MAYORA92
		JNZ	T_MAYORA92
      CONTINUAB:ADD	#9
		STO	HELP1
		LD	#0
		STO     ACARREO	
                JZ	T_MAYORA92
		JNZ	T_MAYORA92
      
      SUMA_BITA:LD	#1
		ADD	#0FF
		LD  	X
		ADC	Y
		AND     #0F0
		STO	PAR1
		LD	PAR1
		LD	#1
		ADD	#0FF
		ADC	ACARREO
		STO	HELP1
		RET
 
          BEGIN:LDSP	#6000
		
		LDX	OPER1+1
		LDY	OPER2+1
		CALL	SUMA_BITB
		LDY	HELP
		CALL	T_MAYORA91	
 
		HALT
		END

    Source: geocities.com/v.iniestra/apuntes/arq_proc

               ( geocities.com/v.iniestra/apuntes)                   ( geocities.com/v.iniestra)