Quiero cambiar el siguiente programa para que muestre un solo byte 0-255 a un doble byte 0-999. ¿No sé cómo modificarlo?
a_bit equ 20h; el dígito único del tubo digital se almacena en la ubicación de la memoria
b_bit equ 21h; el dígito de las decenas del tubo digital se almacena en la ubicación de la memoria
temp equ 22h;Ubicación de la memoria de almacenamiento del valor del contador
bai equ 30h
ORG 00H
estrella: mov temp, #0;
stlop: acall display; llama a la subrutina de visualización
inc temp; agrega 1 al contador
mov a,temp
cjne a,#255,next; ¿Determinar si el contador está lleno de 100?
mov temp,#0; borrarlo y comenzar de nuevo cuando llegue a 100
INC 31H
MOV R2,31H
CJNE R2,#10,NEXT;100*10=1000
MOV 31H,#00
siguiente: ljmp stlop; bucle si no está satisfecho
;Mostrar subrutina
display: mov a,temp ;Convierte el número hexadecimal en temp a decimal
mov b,#100 ;Decimal/ 100=sistema decimal
div ab;El dígito de las centenas está en ACC
mov bai,a;Envíe el dígito de las centenas primero
MOV A,B; envía los dígitos de las decenas y las unidades a ACC
MOV B,#10
DIV AB
mov b_bit,a ;el dígito de las decenas está en a
mov a_bit,b ;El bit de las unidades está en b
mov dptr,#numtab ;Especifique la dirección inicial de la búsqueda en la tabla
mov r0,# 25
dpl1: mov r1,#25 ;
dplop: mov a,a_bit ;Obtener número de un solo dígito
MOVC A,@A+DPTR ;Verificar Código de 7 segmentos de un número de un solo dígito
mov p1,a ;enviar código de 7 segmentos de un dígito
clr p3.5 ;activar la pantalla de los dígitos
acall d1ms ;mostrar 162 microsegundos
setb p3.5; Apagar la visualización de las unidades para evitar imágenes fantasma
mov a,b_bit ;Obtener el dígito de las decenas
MOVC A,@A+DPTR ; Verificar el código de 7 segmentos para el dígito de las decenas
mov p1,a;Enviar el código de 7 segmentos para el dígito de las decenas
clr p3 .6;Active la visualización de decenas de dígitos
llame a d1ms; muestre 162 microsegundos
setb p3.6; apague la visualización de decenas para evitar imágenes fantasma
MOV A, bai; Tome el dígito de las centenas y envíelo a A
MOVC A,@A+DPTR
MOV P1,A
CLR P3.7 ;Mostrar dígitos de cientos
LCALL D1ms
SETB P3.7
djnz r1,dplop; Ejecución del bucle 125 veces
djnz r0, dpl1; ejecución del bucle 150X25=1000 veces
ret
;2+2X80=162 microsegundos, el retraso se calcula según 12MHZ
D1MS: MOV R7, #80
DJNZ R7,$
RET
pestaña numérica: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ,40H
final