Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo programar para convertir números hexadecimales en números decimales usando ensamblador? ¿Dominar las habilidades básicas de los programas de un solo paso y establecer puntos de interrupción para ejecutar?

¿Cómo programar para convertir números hexadecimales en números decimales usando ensamblador? ¿Dominar las habilidades básicas de los programas de un solo paso y establecer puntos de interrupción para ejecutar?

ORG 0000H MOV SP, #6FH; configure MOV R6 en la parte inferior de la pila, #10H; retraso del software 0,5 s, espere a que finalice el reinicio de 8255

LOOP2: MOV R5 , #100

LOOP3: ACALL DELAY

DJNZ R5, LOOP3

DJNZ R6, LOOP2 MOV A, #80H Inicialización de 8255

MOV DPTR , #4003H

MOVX @DPTR, A MOV 20H, #0H; envía el número a mostrar

MOV 21H, #1H

MOV 22H, # 2H

MOV 23H, #3H

MOV 24H, #4H

MOV 25H, #5HLOOP1: MOV R0, #20H; puntero de dirección de visualización Valor 20H

MOV R2, #0FEH; el código de bits de visualización apunta al primer dígito desde la izquierda

LCALL DISPLY Llame a la subrutina de visualización

> SJMP LOOP1DISPLY: MOV A, @R0; Saque el número que se mostrará

MOV DPTR, #DTAB; Envíe la primera dirección de la tabla de códigos de fuente a DPTR

MOVC A; , @A DPTR; busque la tabla de códigos de fuente

MOV DPTR, #4001H; la dirección del puerto B envía DPTR

MOVX @DPTR, A el código de fuente se envía al puerto del segmento<; /p>

MOV A, R2; código de bits de fuente Enviar A

MOV DPTR, #4000H; Enviar DPTR a una dirección de puerto

MOVX @DPTR, A; código al puerto de bit

LCALL DELAY; retardo de llamada subrutina de tiempo

MOV A, #0FFH; desactivar todos los bits de visualización

MOVX @DPTR, A

MOV A, R2

RL A; Desplaza el código de carácter a la izquierda 1 bit

MOV R2, A Enviar R2 de regreso

INC;

R0; Corrige el puntero del búfer de visualización

CJNE R0, #26H, DISPLY; Muestra el siguiente número

RETDTAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H

DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH

DB 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H

DB 00H, 10H, 08H, 03H, 46H, 21H, 06H, 0EH

DB 0BFH, 0FFHDELAY: MOV R1, #0FAH programa de retardo de 0,5 ms

DJNZ R1, $

FIN DE RETIRO