Basicamente es esto.
Existen dos tipos de BCD: Empaketado y desempaketado
En BCD solo tienes que convertir uno a uno los digitos decimales en binario puro y luego dependiendo si es empaketado o desempaketado, ponerlos de una forma u otra:
El desempaketado trabaja con Bytes completos, esto es ke para cada numero decimal se utiliza un Byte. osea 8 bits, y como cada BCD es de 4 Digitos, la forma de representarlo seria: 0000+BCD
El empaketado seria en cada Byte dos digitos BCD osea BCD+BCD
Te pongo un ejemplo.
El numero a pasar a BCD es el 96 seria 98(1001) el primer BCD y 6(0110) el segundo BCD
En desempaketado seria: 0000 1001 0000 0110
En empaketado seria: 1001 0110
Para sumar En BCD se suma igual ke en binario puro.
Ahora veremos lo del execeso a M basicamente esto es sumarle M (En tu caso 3) al numero binario y sumarlo despues:
Asi por ejemplo el numero de antes: 96 en exceso a 3 y bcd seria 96+3 =99 entonces seria 9-9 ===>
En empaketado: 1001 1001
En desempaketado 0000 1001 0000 1001
Y luego le sumas el numero ke kieras, en binario puro.
Resumiendo:
Para sumar en exceso a lo ke sea, primero le sumas el exceso, y luego lo pasas a BCD y despues lo sumas como si fuera binario.
Date cuenta que si sumas en BCD desempaketado el grupo de ceros no se suma, se keda igual, para no liarte sumas en empaketado y despues rrellenas con ceros.
Weno esto es todo espero ke te sirva.