Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo escribir el código de control de la pantalla LED en el diseño del curso "Principios del lenguaje ensamblador de microcomputadoras"?

¿Cómo escribir el código de control de la pantalla LED en el diseño del curso "Principios del lenguaje ensamblador de microcomputadoras"?

Segmento de datos

io8255a es igual a 288H

io8255b es igual a 289H

io8255c es igual a 28AH

io8255t es igual a 28BH

Datos Final 7

Segmento de código

Supongamos cs: código, ds: datos

Inicio:

mov ax, data

mov ds, ax

mov dx, io8255t; puerto de control

mov al, 81H; configure 8255 como salida de puerto A

>

out dx, al

mov dx, io8255a

mov al, 00H; apaga las 8 lámparas

out dx, al

mo: mov dx , io8255c

in al, dx

cmp al, 01h

jz k1

cmp al , 02h

jz k2

cmp al, 04h

jz k3

jmp theend

k1: jmp l1

k2: jmp l2

k3: jmp l3

l1:

llamar a deng

l2:

mov dx,io8255a

mov al,01h

out dx,al

l3:

mov dx,io8255a

mov al, 00h

out dx, al

theend:

mov al, 00h

mov dx, io8255a

p>

out dx, al

jmp mo

deng proc

mov dx, io8255a; puerto

mov al, 01H; lámpara 1

salida dx, al

retraso de llamada 1 segundo

mov al, 04H ; Lámpara 3

salida dx, al

retraso de llamada; retraso de 1 segundo

mov al, 10H

procesamiento de deng;

deng proc

mov dx, io8255a; puerto de datos iluminado

out dx, al

retraso de llamada 1 segundo

p>

mov al, 40H; luz no.7

out dx, al

retraso de llamada 1 segundo

mov cl, 5

return1: mov al, 55H; luces 1, 3, 5, 7

salida dx, al

retraso de llamada 1 segundo

mov al, 00H

salida dx, al

retraso de llamada; retardo 1 segundo

retorno de bucle1

mov al, 02H; Lámpara #2

out dx, al

retraso de llamada; retraso 1 segundo

mov al, 08H

salida dx, al

retardo de llamada; retraso de 1 segundo

mov al, 20H; lámpara #6

salida dx, al

retraso de llamada; retraso de 1 segundo

mov al, 80H; lámpara 8

out dx, al

retraso de llamada de 1 segundo

p> p>

mov cl, 5

return2: mov al, 0AAH 2, 4 6, 8 lightout dx, al

retardo de llamada; retardo de 1 segundo

mov al, 00H

out dx, retardo de llamada al

1 segundo

retorno de bucle2;

deng endp

retraso proc; retraso de subrutina 1 segundo

push cx

mov bx, 10000

otra vez1: mov cx, 2801

espera0: bucle esperar0

dec bx

jnz otra vez1<

pop cx< / p>

ret

delay endp

sdelay proc; la subrutina tiene un retraso de 0,1 segundos

push cx

mov bx, 1000

otra vez2: mov cx, 2801

espera1: bucle esperar1

dec bx

jnz otra vez2

pop cx

ret

sdelay endp

el código termina

fin de inicio