| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [C] Inline-Assembler - XOR im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo zusammen, ich bin gerade dabei zu lernen, mit Inline-Assembler im gcc umzugehen. Im Zuge dessen habe ich mir ...
![]() |
| | #1 (permalink) |
| Registriert seit: 08.02.09 ![]() Likes: 0 | [C] Inline-Assembler - XOR Anzeige Hallo zusammen, ich bin gerade dabei zu lernen, mit Inline-Assembler im gcc umzugehen. Im Zuge dessen habe ich mir vorgenommen, einen kleine Funktion zu schreiben, die zwei chars übergeben bekommt und diese mittels XOR verknüpft. Hier mal meine Funktion: Code: void simple_xor( char des, char key ) {
asm (
"xorb %1, %0"
:"=r" (des)
:"r" (key)
);
// Kontrolle
printf( "%d\n", des );
printf( "%d\n", key );
} Zunächst wollte ich das Ganze jetzt mal mit Zahlen testen, habe die Funktion also so aufgerufen: Code: simple_xor( 0, 10 ); Woran liegt das? Beziehungsweise, was mache ich denn falsch? edit: Ich habe das ganze mal mittels gcc -S in eine Assemblerdatei übersetzen lassen. Da fand ich dann folgende Zeile(n): Code: #APP xorb %al, %al #NO_APP edit2: So, jetzt habe ich's geschaft. :D Die simple Lösung war, einfach bei beiden ein unterschiedliches Register anzugeben: Code: asm ( "xorb %1, %0" :"=a" (des) :"b" (key) ); mcf |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Inline Hooking | Schurke | (In)security allgemein | 5 | 03.05.09 14:44 |
| [C] Inline Assembler | Cr4ckEye | Code Kitchen | 12 | 24.12.08 14:24 |
| Inline Assembler[c++] | Kenniej91 | Code Kitchen | 2 | 16.11.08 19:07 |
| C / inline asm: problem mit Rückgabewert | RedEagle | Code Kitchen | 4 | 04.09.08 18:51 |
| floating point mit inline-Asm(M$VC++) | Diablo_bth | Code Kitchen | 1 | 13.06.02 19:49 |