>> Elettronica Tecnologia >  >> Personal Audio >> radiosveglia

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 navigare con l'iPhone 3.0
  2. Come scrivere proteggere una scheda Xd
  3. Problemi e soluzioni per Samsung Galaxy S7 Edge
  4. Come risolvere TV distorta su un Panasonic Home Theater
  5. Quali sono alcuni siti web che offrono forniture chirurgiche?
  6. Cos'è l'icona di una fotocamera?