Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
Faccine,Smilies,Emoticon
Gruppo su Faccialibro

Pagina su Faccialibro
Nuova Discussione
Rispondi
 
Pagina precedente | 1 | Pagina successiva
Stampa | Notifica email    
Autore

La gestione dei dispositivi di input/output nell'8086...aiutooooo!

Ultimo Aggiornamento: 17/03/2004 19:04
mi servirebbero degli appunti sulla gestione dei dispositivi di input/outpu nell'8086....chi mi aiuta a cercare??

[SM=x39943]
15/03/2004 09:37
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 4.874
Post: 2.644
Registrato il: 21/04/2001
Sesso: Maschile
Moderator
Super Member
15/03/2004 11:17
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
Re:

Scritto da: roob 15/03/2004 11.17
azz... roba di vent'anni fa !

cmq vedi sto sito:

www.pklab.net/kbase/infind/architettura-base/

oppure cerca qui:

www.google.it/search?q=8086+hardware+input%2Foutput&ie=UTF-8&oe=UTF-8&h...




qualcosina ho trovato che mi è stato d'aiuto...ma roob non ho trovato niente che parlasse della tecnica del "POlling"...[SM=x39929]
15/03/2004 12:01
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 4.875
Post: 2.645
Registrato il: 21/04/2001
Sesso: Maschile
Moderator
Super Member
Re: Re:

Scritto da: charmstar 15/03/2004 12.01

qualcosina ho trovato che mi è stato d'aiuto...ma roob non ho trovato niente che parlasse della tecnica del "POlling"...[SM=x39929]



La tecnica del polling consiste semplicemente in un ripetitivo controllo di alcune porte per vedere se esiste qualche dato di input.
Al posto del polling si puo' usare un piu' efficiente interrupt hardware, ovverossia quando viene inserito un nuovo dato in una porta allora viene emanato un impulso hardware al microprocessore (detto interrupt) che sospende l'elaborazione in corso per andare ad elaborare il nuovo dato apparso nella porta d'input.
Non appena finisce di elaborare il dato, il microprocessore ritorna alla routine che stava eseguendo prima di essere interrotto.
Questo in linea di massima è il metodo usato dalle periferiche per comunicare con il microprocessore.
Con il polling , il microprocessore si assume l'onere di andare a controllare periodicamente tutte le porte per verificare l'esistenza di nuovi dati, mentre con l'interrupt il microprocessore viene esentato diciamo da questo lavoro e viene interrotto solo quando un nuovo dato viene effettivamente scritto sulle porte.





15/03/2004 12:25
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
grasssssssssssssssssssssssssssssssie![SM=x39868]
15/03/2004 13:06
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 1.934
Post: 554
Registrato il: 04/01/2002
Età: 46
Sesso: Maschile
VocenelWeb
Cool Member
Studia ! Studia!

Queste sono le basi dell'informatica !!!
15/03/2004 14:04
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
Re:

Scritto da: Giancarlo75 15/03/2004 14.04
Studia ! Studia!

Queste sono le basi dell'informatica !!!


[SM=x39916]
15/03/2004 15:11
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 4.877
Post: 2.647
Registrato il: 21/04/2001
Sesso: Maschile
Moderator
Super Member
Re:

Scritto da: charmstar 15/03/2004 13.06
grasssssssssssssssssssssssssssssssie![SM=x39868]



pregozzz ! [SM=x39854]
15/03/2004 15:38
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 3.368
Post: 2.431
Registrato il: 22/04/2001
Città: PALERMO
Età: 54
Sesso: Maschile
Moderator
Super Member
Re: Re:
Eh, si. Bello rileggere questi concetti. Mi riportano indietro al periodo scolastico.
Mi piaceva tanto l'informatica. Mi sentivo un genio [SM=x39897]
15/03/2004 21:32
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 40.501
Post: 13.270
Registrato il: 15/09/2001
Sesso: Maschile
VocenelWeb
Forum Addicted
In pratica il polling è

unsigned char Polla_Porta(void)
{
unsigned char dato_ingresso;
while (dato_ingresso=inportb(0x378);
return(dato_ingresso);
}



E qst è il polling distruttivo ke ti pianta la makkina finké nn metti 1 dato sulla porta parallela in qst caso,qll costruttivo lo metti tra 1 funzione e l'altra e nn ti pianta niente ma rallenta soltanto


if(dato_ingresso=inportb(0x378)
/* */ Servi_Funzione();
...
...



Ovvimente nn ho testato le funzioni e le ho fatte a mente,ma credo siano corrette [SM=x39873]
X fare lo stesso in Assembler anziké in C le cose sono le stesse [SM=x39869] [SM=x39868]

[Modificato da g 15/03/2004 22.18]

15/03/2004 22:11
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 3.377
Post: 2.439
Registrato il: 22/04/2001
Città: PALERMO
Età: 54
Sesso: Maschile
Moderator
Super Member
Re:

Scritto da: g 15/03/2004 22.11

unsigned char Polla_Porta(void)
{
unsigned char dato_ingresso;
while (dato_ingresso=inportb(0x378);
return(dato_ingresso);
}


if(dato_ingresso=inportb(0x378)
/* */ Servi_Funzione();
...
...


[Modificato da g 15/03/2004 22.18]




La condizione di eguaglianza si valuta con ==
Con = invece si assegnano valori.
Perchè ascolti sempre il valore esadecimale 0x378 ?

---------------------------
Mandami SMS gratis
---------------------------

...Voci nel Web...

[Modificato da Zen 16/03/2004 23.19]

16/03/2004 23:17
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 40.591
Post: 13.306
Registrato il: 15/09/2001
Sesso: Maschile
VocenelWeb
Forum Addicted
Re: Re:

Scritto da: Zen 16/03/2004 23.17

Scritto da: g 15/03/2004 22.11
In pratica il polling è

unsigned char Polla_Porta(void)
{
unsigned char dato_ingresso;
while (dato_ingresso=inportb(0x378);
return(dato_ingresso);
}



E qst è il polling distruttivo ke ti pianta la makkina finké nn metti 1 dato sulla porta parallela in qst caso,qll costruttivo lo metti tra 1 funzione e l'altra e nn ti pianta niente ma rallenta soltanto


if(dato_ingresso=inportb(0x378)
/* */ Servi_Funzione();
...
...



Ovvimente nn ho testato le funzioni e le ho fatte a mente,ma credo siano corrette [SM=x39873]
X fare lo stesso in Assembler anziké in C le cose sono le stesse [SM=x39869] [SM=x39868]



La condizione di eguaglianza si valuta con ==
Con = invece si assegnano valori.
Perchè ascolti sempre il valore esadecimale 0x378 ?
>


0x378 è la porta parallela LPT1:,l'interfaccia bytewide + facilmente dispo [SM=x39859]
Se vedi ho VOLUTAMENTE messo = e nn ==
Se io faccio
if(dato_ingresso==inportb(0x378)
ottengo l'equivalenza di 1 variabile dato_ingresso con l'in della porta come test,cioè esegue l'IF se corrispondono
Se invece faccio come dico io
if(dato_ingresso=inportb(0x378)
ottengo come ingresso della IF il valore della porta ke ho già passato alla variabile
Se qst porta ha tutti 0x00 ottengo ke la IF nn viene eseguita,se alla porta leggo 1 solo 1 il risultato è ke la variabile viene aggiornata col valore e ke la IF viene eseguita dato ke nn è + nonzero
NN so se mi sono spiegato
Ovviamente qst vale x le porte stampante bidirezionali e dopo aver settato il bit 5 della parola di controllo [SM=x39884]

[Modificato da g 17/03/2004 0.25]

16/03/2004 23:53
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 3.383
Post: 2.445
Registrato il: 22/04/2001
Città: PALERMO
Età: 54
Sesso: Maschile
Moderator
Super Member
Re: Re: Re:

Scritto da: g 16/03/2004 23.53

0x378 è la porta parallela LPT1:,l'interfaccia bytewide + facilmente dispo [SM=x39859]
Se vedi ho VOLUTAMENTE messo = e nn ==
Se io faccio
if(dato_ingresso==inportb(0x378)
ottengo l'equivalenza di 1 variabile dato_ingresso con l'in della porta come test,cioè esegue l'IF se corrispondono
Se invece faccio come dico io
if(dato_ingresso=inportb(0x378)
ottengo come ingresso della IF il valore della porta ke ho già passato alla variabile
Se qst porta ha tutti 0x00 ottengo ke la IF nn viene eseguita,se alla porta leggo 1 solo 1 il risultato è ke la variabile viene aggiornata col valore e ke la IF viene eseguita dato ke nn è + nonzero
NN so se mi sono spiegato
Ovviamente qst vale x le porte stampante bidirezionali e dopo aver settato il bit 5 della parola di controllo [SM=x39884]

[Modificato da g 17/03/2004 0.25]




Non ti sei spiegato, ma credo di averti capito [SM=x39903]
17/03/2004 19:04
 
Email
 
Scheda Utente
 
Modifica
 
Cancella
 
Quota
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:38. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com