Gast
#3928574
Hallo Leute, frage: Ich will per inline-assembler eine Funktion realisieren, die aus einem hardware-register Daten ausliest und die fortlaufend in einen void Pointer schreibt. Es handelt sich hier um ein spezielles Assembler, hier kurz die Beschreibung der Befehle die ich nutzen will: Pro Speicheradresse gehen aber nur 9 Bit in den Memory l18 Rd, disp(Rs) //load 18 bit from memory s18 disp(Rs2), Rs1 //store 18 bit to memory in = ist mein void-Pointer in dem die Daten landen sollen master->data_out = hardwareregister aus dem gelesen werden soll asm ( l18 R1, 0(%a0) \n s18 0(%a1), R1 \n" l18 R1, 0(%a0) \n s18 2(%a1), R1 \n" : : "e"(&master->data_out),"e"(&in) ); Ist das so richtig? Habe mit inline assembler noch nie etwas gemacht, und bevor ich mich mit gcc Fehlern rumschlage wollte ich mal fragen ob das so grundsätzlich passt?! Danke