Come i computer elaborano il codice condizionale / di input / evento? [duplicare]

1

Capisco che i computer siano fondamentalmente un complesso sistema di firme elettriche che può calcolare in base a schede logiche e una sorta di meccanismo di gate, ma come i computer elaborano qualcosa come se il numero prodotto dalla tastiera fosse inferiore a 10 o se un mouse viene cliccato due volte in un certo tempo equivale a un doppio clic?

    
posta Evan Mosseri 03.03.2013 - 14:57
fonte

2 risposte

2

Non sei completamente sicuro di dove stai andando e dipende dall'hardware Il modo in cui tutto è iniziato è stato.

C'è un registro speciale nella CPU chiamato Flags Meno di quanto fatto da una sottrazione. La sottrazione viene eseguita per aggiunta con la rappresentazione del complemento a due. Nei numeri negativi a complemento a due (tenendo conto dell'overflow) il bit più significativo è sempre 1

Quindi un test inferiore a Just a - b. Il bit più significativo del risultato viene copiato nel bit N del registro flags e poi questo è testato.

Di solito c'è un bit zero per testare se A = B e un bit Overflow. Altri ancora come Carry for istance.

Overflow direi che il tuo numero è un byte firmato che ti da -128 a + 127 (256 numeri diversi). quindi -128 - 1 non si adatta e il bit di overflow viene impostato.

C'è un carico in più nei processori moderni, ma le basi sono ancora vere.

Questo tipo di cose è molto più facile da prendere in CPU molto più basilari di quelle che usiamo ora. L'ho appreso sulla Z80 in 76 ...

Il clic del mouse su uno È memorizzare il "tempo" dell'ultimo clic. Quindi, al clic successivo, sottrai quanto sopra e poi confrontalo con l'intervallo che hai memorizzato per la velocità con cui devi fare clic per farlo essere un doppio clic.

    
risposta data 03.03.2013 - 15:54
fonte
0

La CPU è composta da un insieme di registri. Alcuni sono registri di uso generale (possono essere utilizzati per il calcolo) e alcuni hanno usi dedicati (come il puntatore di istruzioni che contiene l'indirizzo della prossima istruzione da recuperare). C'è un registro di stato (di solito) che ha diversi bit come "overflow". Alcuni errori vengono catturati dai flag del registro di stato, ma fino al codice macchina generato o prodotto dalla lingua che si sta eseguendo per leggere il registro di stato e avviare un'elaborazione eccezionale.

Gli eventi di input interattivi vengono generalmente gestiti tramite interrupt. Di solito c'è un set di linee di interrupt nella CPU e quando c'è un segnale su una di quelle linee che fa sì che la CPU passi a un nuovo blocco di codice che viene chiamato un gestore di interrupt. Senza parlare di un particolare O / S, il gestore di interrupt viene scritto come parte del sistema operativo e non fa parte della CPU, sebbene la CPU chiami l'indirizzo fornito da O / S come gestore di interrupt. Ad esempio, un O / S prototipo, lo spostamento del mouse potrebbe causare un interrupt, che richiama un gestore di interrupt seriale, che legge il valore dalla porta seriale, che quindi attiva la rielaborazione della GUI, che legge la posizione del mouse e disegna il mouse freccia nel posto giusto.

Ancora altri I / O vengono gestiti attraverso una combinazione di porte e registri IO e i valori vengono periodicamente interrogati per le modifiche.

    
risposta data 03.03.2013 - 16:56
fonte

Leggi altre domande sui tag