Red de conocimiento informático - Conocimiento sistemático - Explicación del ensamblador

Explicación del ensamblador

ORG 0; el programa comienza a almacenar desde la dirección 0 de la rom.

Original: MOV R1, #00H envía punto cero instantáneo a R1.

Siguiente: MOV A, r 1; envía 0 0 en R65438 a a.

MOV DPTR, # tabla; envía la dirección # tabla donde se encuentra 3FH a DPTR.

MOVC A, @ A DPTR; almacena la suma de la dirección DPTR más el valor inmediato en A, y almacena el número en la dirección en A. De esta manera, al cambiar el número en A, usted puede almacenar respectivamente 3F, 06, 5b y 4f para direccionar...

MOV P0, A envía un valor medio al puerto P0 (controla el encendido o apagado del LED del puerto P0).

LCALL retraso; llame al programa de retraso

INC r 1; agregue 1 al número inmediato en R1, de modo que la dirección en A DPTR sea la dirección del siguiente número, y buscar en secuencia el sitio.

CJNE R1, #10, siguiente; si el contenido del registro R1 no es igual al número inmediato 10, se pasará a SIGUIENTE para direccionar el siguiente número.

LJMP arranca; arranca salto de longitud y entra al siguiente ciclo.

Retraso: MOV R5, # 20; se inicia el programa de retraso y se envía el número inmediato 20 a R5.

D2: MOV·R6, No. 20; Igual que arriba

D1: MOV R7, #248; Igual que arriba

DJNZ R7, $; menos 1 no es 0, salte a la instrucción en sí,

DJNZ R6, d 1; 1 negativo no es 0. Salta a D1.

DJNZ R5 menos 1 no es 0. Salta a D2.

RET retrasa el final del programa

Tabla: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH abre el espacio de memoria según 3fh , 06h, 5bh , 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh se almacenan en secuencia (cada número ocupa 16 bits).

Se acabó; se acabó todo el espectáculo.