LJMP MAIN
ORG al programa principal 0003H.
LJMP INT0 interrupción 0
ORG 0013H
LJMP int 1; pausa
ORG 0030H
PRINCIPAL: Donde comienza el programa principal.
LJMP MAIN salta a la declaración principal, omitiendo la entrada de interrupción.
ORG 1000h; pseudoinstrucción para establecer la dirección inicial del área de almacenamiento del programa
Operación principal: MOV SP, dirección de entrada de pila # 60H
MOV 81H , # 50H enviará inmediatamente los datos 50H a la dirección del área de datos 81H.
MOV R0,#20H envía un conteo inmediato de 20H a R0 MOV @R0,#45H El registro se direcciona indirectamente para enviar 45H a la dirección correspondiente a los datos almacenados en R0.
; es la dirección de 20H INC R0; R0 a mov @ R0, # 74h registra el direccionamiento indirecto, enviando 74H a la dirección correspondiente a los datos almacenados en R0;
MOV R1, #30H envía 30H a.
R1MOV @R1, # 67H registra el direccionamiento indirecto, envía 67H a la dirección correspondiente a los datos almacenados en R1, esta es la dirección de 30H.
INC r 1; R1 más un MOV @R1, # 28H se direcciona indirectamente para enviar 28H a la dirección correspondiente a los datos almacenados en R1;
CLR C; Borrar bit de bandera MOV·R2, # 02; Enviar 2 a R2 L2: ACALL l 1; función de tono l 1 dec R0 menos a DEC R1 ; R1 disminuye en un DJNZ L2 R2; si R2 disminuye a 0, ejecute la siguiente oración; de lo contrario, salte a L2CLR A; el acumulador borra MOV ACC.0, C mueve el símbolo a la posición cero del acumulador.
; Retraso de un ciclo MOV @R0, A; Este registro está direccionado indirectamente para transferir los datos en A a la dirección L3 correspondiente a R0: sjmpl3;
; Registre el direccionamiento indirecto, coloque la dirección correspondiente a R0; los datos en se transfieren a
AADDC A, @ r 1; Se agrega, luego se agrega un acarreo. Ada; instrucción de ajuste decimal MOV @R0, A
; el registro se dirige indirectamente para transferir los datos en A a la dirección correspondiente a la subrutina R0 RET al final;