Suchergebnisse für Anfrage "inline-assembly"

2 die antwort

Wie teile ich GCC asm mit, dass ein Eingaberegister überfüllt ist?

Ich versuche eine 64 = 32x32 Multiplikation über das x86 @ zu machmul Anweisung, aber ich brauche nur das hohe Wort des Ergebnisses (dasedx registrieren). Also habe ich natürlich versucht Listingedx als Ausgangsregister undeax als überladenes ...

12 die antwort

Gewusst wie: Inline-Assembler in C ++ (unter Visual Studio 2010)

Ich schreibe ein leistungskritisches C ++ - Projekt, in dem das 200-Zeilen-Kernmodul 70% der Zeit verwendet. Ich möchte den Core mithilfe der Inline-Montage optimieren, bin aber völlig neu in diesem Bereich. Ich kenne jedoch einige ...

0 die antwort

Informationen, die besagen, dass die Inline-Assembly einen bestimmten Speicherbereich liest

GCC (alle Versionen, die ich bequem testen kann) zeigt an, dass eine Inline-Assembly-Anweisung eine bestimmte Speicherregion liest (ausgedrückt als Zeigerp und eine Größen) mit diesem zugegebenermaßen umständlichen Konstrukt: asm ("..." : : "m" ...

TOP-Veröffentlichungen

2 die antwort

Wie greife ich von Inline-Asm auf C struct / variables zu?

Betrachten Sie den folgenden Code: int bn_div(bn_t *bn1, bn_t *bn2, bn_t *bnr) { uint32 q, m; /* Division Result */ uint32 i; /* Loop Counter */ uint32 j; /* Loop Counter */ /* Check Input */ if (bn1 == NULL) return(EFAULT); if (bn1->dat == ...

2 die antwort

ARM-Assembly: kann beim Neuladen von "asm" @ kein Register in der Klasse "GENERAL_REGS" find

Ich versuche, eine Funktion zu implementieren, die den 32-Bit-Operanden mit dem 256-Bit-Operanden in der ARM-Assembly auf ARM Cortex-a8 multipliziert. Das Problem ist, dass mir die Register ausgehen und ich keine Ahnung habe, wie ich die Anzahl ...

4 die antwort

llvm meldet: nicht unterstütztes Inline-Asm: Eingabe mit dem Typ 'void *', die Ausgabe mit dem Typ 'int'

Ich habe den folgenden Inline-Assembler-Code: int get_year(int a, int *b, char * c) { int ret, t1, t2; asm ( "addl %3, %[a] \n\t" "movl %[a], %[t1] \n\t" "movl $58, %%edx \n\t" "movb %%dl, 0x04(%1) \n\t" : [t1] "=r" (t1), "=&D" (t2) : [a] "r" ...

8 die antwort

Direkter Aufruf mit der Inline-Assembly von GCC

Wenn Sie eine C / C ++ - Funktion aus einer Inline-Assembly aufrufen möchten, können Sie Folgendes tun: void callee() {} void caller() { asm("call *%0" : : "r"(callee)); }GCC gibt dann folgenden Code aus: movl $callee, %eax call *%eaxDies kann ...

2 die antwort

(Inline-Assembly in C) Assembler-Meldungen: Fehler: unbekannter Pseudo-Op:

Ich habe eine kurze C "Wrapper" -Funktion für ein @ geschrieb asm Inline-Montage, wie unten. Der Assembler-Code besteht aus einer while-Schleife, die mit SSE2 mehrere Vektorpunktprodukte berechnet. Ich verwende GCC 4.8.4 unter Ubuntu 14.04 auf ...

2 die antwort

Assembly-Code fsqrt und fmul Anweisungen

Ich versuche zu berechnen1.34 *sqrt(lght) in dieser Funktion mit Inline-Assembly, aber ich erhalte Fehler wie: '_ asm' nicht deklariert (erstmalige Verwendung in dieser Funktion) Jede nicht deklarierte Kennung wird nur einmal für jede Funktion ...

2 die antwort

efinieren von Bytes in der GCC-Inline-Assembly in Dev-C ++ (ASCII in der AT & T-Syntax unter Window

Der folgende Code zeigt nur ein Meldungsfeld auf dem Bildschirm an. Die Adressen sind zur Vereinfachung fest codiert: int main () { asm("xorl %eax, %eax \n" "xorl %ebx, %ebx \n" "xorl %ecx, %ecx \n" "xorl %edx, %edx \n" "pushl %ecx \n" //$0x0 ...