>> Tecnologia elettronica >  >> Audio personale >> Radiosveglie

Come si scrive un programma per scoprire l'intervallo di tempo tra due eventi consecutivi utilizzando il linguaggio di programmazione 8086?

```

.MODELLO PICCOLO

.PISTA 100H

.DATI

STRING DB '$'; Stringa da visualizzare

MSG1 DB 0DH, 0AH, 'Inserisci la prima volta:$'; messaggio 1

MSG2 DB 0DH, 0AH, 'Inserisci la seconda volta:$'; messaggio 2

RISULTATO DB 0DH, 0AH, 'L'intervallo di tempo è:$'; messaggio 3

MSG3 DB 0DH, 0AH, '$'; messaggio 4

INGRESSO1 DB 2 DUP (?); buffer di input per la prima volta

INGRESSO2 DB 2 DUP (?); buffer di input per la seconda volta

USCITA DB 5 DUP (?); buffer di uscita

CRLF DB 0DH, 0AH, '$'; Ritorno a capo e avanzamento riga

.CODICE

PROC PRINCIPALE; Procedura principale

MOV AX, @DATI; Inizializza il segmento dati

MOV DS, AX

LEA DX, MSG1; Visualizzare il messaggio 1

MOV AH, 9

INT 21H

MOV AH, 1; Ottieni la prima volta

INT 21H

MOV AL, AH; Risparmia ora in AL

MOV BL, DL; Risparmia minuto in BL

MOV AH, 0; Cancella AH e AL

MOV AL, 0

MOV CX, 10; Moltiplicare l'ora per 10

MUL CX

MOVDL, AL; Risparmia ora in DL

USCITA MOV, DL; Memorizza l'ora nel buffer di output

USCITA MOV+1, ':'; Memorizza ":" nel buffer di output

MOV AH, 1; Prendi il minuto

INT 21H

USCITA MOV+2, BL; Memorizza i minuti nel buffer di output

USCITA MOV+3, ':'; Memorizza ":" nel buffer di output

LEA DX, USCITA; Visualizza la prima volta

MOV AH, 9

INT 21H

LEA DX, MSG2; Visualizzare il messaggio 2

MOV AH, 9

INT 21H

MOV AH, 1; Ottieni la seconda volta

INT 21H

MOV CH, AH; Risparmia ora in CH

MOVDH,DL; Risparmia minuti in DH

MOV AH, 0; Cancella AH e AL

MOV AL, 0

MOV CX, 10; Moltiplicare l'ora per 10

MUL CX

MOVDL, AL; Risparmia ora in DL

CMPDL,USCITA; Confronta gli orari

JB SUB_ORE; Se la 2a ora

SUB CH,USCITA; Sottrai la 2a ora dalla 1a ora

MOVDL, CH; Salva la differenza in DL

MOV AH, 0; Cancella AH e AL

MOV AL, 0

MOV CX, 10; Moltiplicare il minuto per 10

MUL CX

MOVDL, AL; Risparmia minuti in DL

CMPDL, USCITA+2; Confronta i minuti

JB SUB_MINUTI; Se 2° minuto <1° minuto, sottrai i minuti

SUB DH,USCITA+2; Sottrai il 2° minuto dal 1° minuto

MOVDL, DH; Salva la differenza in DL

JMP SALTA; Passa a saltare la visualizzazione dell'intervallo di tempo 'negativo'

SUB_ORE:; Sottrarre ore se necessario

MOVDL,24; Aggiungi 24 ore alla 2a ora

AGGIUNGI CH, DL

SUB CH, USCITA; Sottrai la 2a ora dalla 1a ora

MOVDL, CH; Salva la differenza in DL

SUB_MINUTI:; Sottrarre minuti se necessario

MOVDL,60; Aggiungere 60 minuti al 2° minuto

AGGIUNGI DH, DL

SUB DH, USCITA+2; Sottrai il 2° minuto dal 1° minuto

MOVDL, DH; Salva la differenza in DL

SALTARE:

USCITA MOV+4, DL; Memorizza la differenza minima nel buffer di output

LEA DX, USCITA; Visualizza l'intervallo di tempo

MOV AH, 9

INT 21H

LEA DX, RISULTATO; Visualizzare il messaggio 3

MOV AH, 9

INT 21H

MOV AH, 4CH; Esci con il codice di ritorno 0

INT 21H

ENDP PRINCIPALE; Fine della procedura principale

```

  1. Come fare una Radio Base FM
  2. Riesci a scoprire la cronologia delle ricerche Wi-Fi?
  3. Come risolvere 12 Volt elettrico
  4. Come si imposta l'orologio su un Iva-W205 alpino?
  5. Come impostare una Weather Clock
  6. Come si imposta l'orologio su un sistema Wave Bose?