Red de conocimiento informático - Problemas con los teléfonos móviles - Función de programación VGA

Función de programación VGA

Nombre del proyecto: Cálculo de años bisiestos

1. Propósito del experimento:

(1) Aprender ramas, interrupciones y expresiones lógicas.

(2) Familiarizado con la programación en lenguaje ensamblador, procesos de compilación y vinculación.

Contenido experimental:

Utilice DOS 21H para llamar a la función de interrupción del teclado tipo 10, ¿la cadena del valor del año del teclado? Los bytes recibidos se almacenan en el búfer. Cada carácter de la cadena se convierte al valor decimal correspondiente (el valor del código ASC del número de 10 dígitos del 0 al 9 es mayor que su propia relación 30H) y se utiliza una expresión de año para determinar si es un año bisiesto. .

3. Habilidades de programación:

(1) Encuentre una manera de determinar si es un año bisiesto. Reglas para juzgar los años bisiestos: si un año es divisible por 4, pero no divisible por 100, o no divisible por 400, es un año bisiesto.

(2) La expresión en lenguaje ensamblador utilizada para determinar si un año específico es bisiesto es la siguiente:

(((AX)MOD 4 EQ 0) y (MOD 100 (AX)EQ 0) )) o ((AX)MOD 400 EQ 0)

(AX)Ingrese el valor del año almacenado desde el teclado.

(3) Como se muestra en la figura:

Debe

compilar:

Segmento de datos definido por segmento de datos

InfoN DB 0DH, 0AH de, ingrese el año: $ '

DB 0DH, 0AH, "¡Este año es bisiesto! $'

N dB ancho de banda 0DH , 0AH, "¡Es un año bisiesto! $'

Watios DW 0

BUF DB 8

¿Decibeles?

DB 8 DUP(?)

Ed (nombre masculino)

Pila de segmento de pila

DB 200 DUP(0)

Fin de la pila

Segmento de código

Supongamos DS: datos, SS: pila, CS: código.

Inicio: MOV AX, DATA

MOV DS, AX

InfoN LEA DX, se muestra la información en pantalla.

MOV AH, 9 INT 21H

LEA DX, buffer de entrada desde teclado este año

MOV AH

Int21H10Day BR/ >MOV CL, [BUF +1]

LEA DI, BUF +2

Llamar datacate

Llamar ifyears

JC A1

LEA DX, positivo

MOV, 9

Explicación de 21H

Exportación JMP

A1:LEA DX ,?

MOV AH, 9

INT 21H

Exportar: MOV AH, 4CH

INT 21H

Datos Cerca del proceso de transformación;

Push CX;

Diciembre CX

LEA SI, BUF +2

TT1: Empresa SI< / p>

Ciclo TT1

; Lacey CX[2]

Emergente CX

MOV DH, 30H

MOV AX , MOV BL, 1

L1: Push Ax

Subbyte PTR [SI, DH

Puntero multibyte [SI]

p>

Will Wax

Barril Explosivo

MUL BL

Diciembre SI

Loop L1

Remojarlo en agua lo hace soft

ENDP Data Center

Casi 10 años

Promoviendo BX

Promoviendo CX

Push DX

Vatios·MOV·AX

MOV·CX,AX</Trigger MOV·DX,0

MOV·BX,4 Años

División BX

CMP DX, 0

JNZ LAB1

CX MOV Aix

MOV BX, 100 BR />División BX

CMP DX, 0

JNZ Lab 2

CX MOV X

MOV·BX, 400

División BX

CMP DX, 0 BR />JZ Laboratory 2

LAB1: Número de clasificación de la biblioteca china

p>

Experimento JMP 3

Experimento 2: STC

Experimento 3: Pop-up DX

Pop-up CX

Pop-up BX

Remojado para suavizar

ifyers ENDP

Contraseña

Empezar desde el final

O diseño de reloj multipropósito en tiempo real.

(1), cuyo objetivo de diseño es un verdadero reloj del fin.

Generación de señal de reloj del temporizador de reloj de la parte de visualización y parte de sincronización

(2) La hora exacta de la interrupción, en segundo lugar,

(3; ) Control del teclado Selección de funciones:/>Escaneo de filas y columnas para determinar la entrada del teclado

Pantalla LED del teclado de autoprueba;

Diferentes entradas de teclas corresponden a diferentes funciones (como rotación del LED o LED parpadeando).

2. Requisitos de diseño

(1) Integración del teclado y la parte de control de selección de chip del 8255.

(2) Pantalla de tubo digital LED, su circuito periférico; La parte de tiempo;

(3 copias) constituye la señal de reloj generada por 8253 y 8259, que se completa con una interrupción temporizada y una visualización de actualización dinámica.