Red de conocimiento informático - Espacio del host - Quiero cambiar el siguiente programa para que muestre un solo byte 0-255 a un doble byte 0-999. ¿No sé cómo modificarlo?

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