Zitat Zitat von Felix G
Also wenn du das tatsächlich so machen willst, wirst du nur dann 100% effizienten Assembler Code erreichen, wenn du ihn selber schreibst.
(inline asm wäre ein gangbarer Weg)
Ich sehe nicht, was (Inline) Assembler hier bringen soll. Wenn Adresse oder Bitposition zur Compilezeit (bei Assembler zur Assemble-Zeit) nicht bekannt sind, dann kann man kein SBI oder CBI verwenden. Die einzige Möglichkeit, ist dann ein indirekter Zugriff und/oder Maskierung mit zur Laufzeit berechneter Maske.

Mit (Inline)Assembler hat man zusätzlich ds Problem, daß wenn die Adresse bekannt ist, man zwischen IN/OUT und LDS/STS unterscheiden will. Das kann der Compiler, aber in Inline-Assembler wird das ein totales Gemurkse

Die Frage die sich hier stellt, warum man überhaupt eine Funktion dafür bemüht, und warum es keine Inline-Funktion ist; wenn schon.