Hay dos enfoques generales que se pueden tomar para obtener un conteo en base 10, base 100 u otro formato que no sea potencia de dos bases. Uno puede realizar el conteo en formato binario y convertir el resultado a la base deseada, o puede contar las cosas directamente en la base deseada.
Si uno está escribiendo código de máquina en el 8051, y quiere tener el conteo en formato base-100, el mejor enfoque probablemente sería que los registros de conteo más bajos contengan 100 menos el valor "real", en cuyo caso el rutina para "incrementar" el par de registros r1: r2 sería:
djnz r2,noWrap
inc r1
mov r2,#100
noWrap:
Si uno desea que r2 cuente hacia arriba en lugar de hacia abajo:
inc r2
cjne r2,#100,noWrap
inc r1
mov r2,#0
noWrap:
El código anterior tomará cinco bytes y se ejecutará en dos ciclos en un 8x51 "estándar" en el caso sin ajuste o cuatro ciclos en el caso de ajuste. El último código tomará siete bytes y se ejecutará en tres ciclos en un 8x51 "estándar" en el caso sin ajuste y cinco ciclos en el caso "ajuste". En los clones 8x51 "acelerados", la diferencia de tiempo entre los dos probablemente será la hora de ejecutar dos instrucciones de costo mínimo, ya que el último código agrega una instrucción adicional (probablemente de costo mínimo) y reemplaza una instrucción djnz de dos bytes con una instrucción cjne de tres bytes.