Red de conocimientos turísticos - Información de alquiler - ¡El ensamblaje de MCU llama a subrutinas repetidamente! Esta subrutina debe usarse en diferentes lugares. ¿Cómo ajustarla? ¿Para qué se utiliza RET?

¡El ensamblaje de MCU llama a subrutinas repetidamente! Esta subrutina debe usarse en diferentes lugares. ¿Cómo ajustarla? ¿Para qué se utiliza RET?

Para llamar a una subrutina, simplemente ingrese LCALL XXXX, XXXX representa el nombre de su subrutina, como una subrutina de retraso LCALL DELY1MS. Esto es para llamar a una subrutina de retraso con un retraso de 1 milisegundo. la subrutina El nombre lo puedes decidir tú mismo

DELY1MS: Este nombre debe ser el mismo que aparece en la llamada, de lo contrario, esta subrutina no será llamada

MOV R7 ,#250

DL1: NOP

NOP

DJNZ R7,DL1

RET

La función de RET es regresar de la subrutina. Llamar a una subrutina Cuando el microcontrolador ejecuta la instrucción RET, el microcontrolador regresará al lugar de llamada y continuará la ejecución.

Aquí tienes una rutina:

Luz intermitente

ORG 00H

AJMP START

ORG 30H

INICIO:MOV P0,#00H

LCALL DELY; subrutina de retardo de llamada

MOV P0,#0FFH

LCALL DELY ;Llamada subrutina de retardo

AJMP START

DELY:MOV R7,#250

DL1:MOV R6,#250

DJNZ R6,$

DJNZ R7,DL1

RET

END

Como puedes ver en este programa, la subrutina se puede llamar. Sin embargo, la llamada a la subrutina debe regresar al final; de lo contrario, el programa quedará atrapado en la subrutina y no podrá salir, y el programa no podrá usarse.