Ciao a tutti...
Mi chiedevo:
Dato che il dev-c++ utilizza il gcc (e non ho nessuna idea di cambiarlo), esiste qualche funzione equivalente alla IN e alla OUT dell'assembly, visto che non posso ricorrere all'asm in line ?
Grazie![]()
Ciao a tutti...
Mi chiedevo:
Dato che il dev-c++ utilizza il gcc (e non ho nessuna idea di cambiarlo), esiste qualche funzione equivalente alla IN e alla OUT dell'assembly, visto che non posso ricorrere all'asm in line ?
Grazie![]()
Experience is what you get when you don’t get what you want
Con gcc non si può usare l'assembly inline?
In ogni caso, cosa fanno la IN e la OUT?
Amaro C++, il gusto pieno dell'undefined behavior.
Non correttamente, il gcc è a 32 o 64 bit (il mio) e non posso inserire codice asm a 16 bit... (scusa ma non lo avevo scritto prima)codice:Con gcc non si può usare l'assembly inline?
La IN trasferisce un byte o un word da una porta di input all'accumulatore AL o AX rispettivamente (l'indirizzo può essere direttamente inserito se a 8 bit altrimenti può essere messo nel registro DX)
IN <AL/AX>, <INDIRIZZO>
la OUT fa la cosa inversa
OUT <INDIRIZZO>, <AL/AX>
Experience is what you get when you don’t get what you want
In buona sostanza vuoi scrivere sulle porte, dunque?
Amaro C++, il gusto pieno dell'undefined behavior.
Si ...
Devo riuscire ad accedere ai registri presenti nelle interfacce...
Experience is what you get when you don’t get what you want
Sotto Windows NT (e quindi anche 2000 e XP) non puoi: il tuo programma viene eseguito in user mode e quindi non può accedere direttamente alle periferiche; devi appoggiarti ad un driver che viene eseguito in kernel mode, come hwinterface.sys, che puoi richiamare tramite inpout32.dll (nel link riportato c'è anche una breve spiegazione della faccenda, che io ti ho riassunto in due parole).
Amaro C++, il gusto pieno dell'undefined behavior.
Quindi in windows non è facile come in consolle ....
E se io volessi creare un applicazione da consolle, con il gcc il discorso resta valido ?
Usando borland tc posso farlo senza problemi, senza tener conto quindi di come verrà eseguito il programma (naturalmente le modifiche restano visibili solo nel prompt e per il tempo di "esecuzione" dello stesso)
cmq grazie del link![]()
Experience is what you get when you don’t get what you want
Per tutte le applicazioni win32 (quelle console comprese) devi usare questo sistema.
Amaro C++, il gusto pieno dell'undefined behavior.
Puoi usare, come dice MItaly, anche la DLL NINOUT32 e il device driver INOUT32D.SYS, di cui trovi i sorgenti in rete.
Grazie![]()
Experience is what you get when you don’t get what you want