Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

In C++ auf eine Speicheradresse direkt zugreifen.

Pitsch / 7 Antworten / Flachansicht Nickles

Kann mir jemand verraten, wie ich in \'C++\' eine Speicheradresse
direckt ansprechen kann (zum Beispiel \'378 Hex\' \'888 Dez\' = LPT1)
und zwar so, dass nur der wert von einem Byte (8 Bit)angesprochen wird.
Ich möchte den Wert einer Variablen dort hineinschreiben, oder den vorhandenen Wert in der Speicherstelle einer Variablen zuweisen um die nachher weiter zu verarbeiten.

Ein Müsterchen Programmcode wäre am hilfreichsten.

Besten Dank zum voraus!
Pitsch

bei Antwort benachrichtigen
lqm820 (Anonym) Dreamforger „unsigned char ptr // 1 byte großer pointer ptr 0x378 // adresse setzen ptr /...“
Optionen

Danke für die Antworten!!

Doch leider funktioniert das nicht so.

Wenn ich einen Zeiger auf eine Variable Zeigen lasse, wird der Zeigerwert irgendwie vom Compiler generiert.

Wenn ich aber versuche einem Zeiger direckt einen Wert (ob char, int oder was auch immer) zuzuweisen, hat schon der Compiler etwas zu motzen. Es wird immer ein reinterpret_cast Operator verlangt.
Ich habe schon Diverses probiert, doch nichts geht.
Darum meine Frage: Wie Spreche ich die Portregister direkt an.
LPT1 = 378 Hex Basisadresse / 1 Steuerregister = Basisadrese + 1 /
2 Steuerregister = Basisadresse + 2 ?
Ich habe schon Stundenlang die MSDN Durchsucht doch leider keine Beschreibung, die ich verwerten konte für dieses Problems gefunden.
In Qbasic von Dos war das eine einfache sache mit out() und in().
Visualbasic kennt keine Befehle zur direckten Adressierung.
In C/C++ sollte es gehen!! aber wie ??

bei Antwort benachrichtigen