Tag: inline-assembly
Montage, die eingebettet ist innerhalb von einer Quelle in eine andere, höhere Sprache, wie etwa die x86-assembly eingebettet in C oder C++.
2
Antworten
Den GCC toolchain verwendet AT&T-assembler-syntax standardmäßig, aber die Unterstützung für Intel-syntax ist über die .intel_syntax Richtlinie. Außerdem, AT&T-und Intel-syntax sind in einer prefix und ein noprefix version, die unterscheiden sich darin, ob oder nicht Sie benötigen, um
1
Antworten
Ich habe diesen code unten in die Funktion: void makeSystemCall(uint32_t num, uint32_t param1, uint32_t param2, uint32_t param3){ asm volatile ( "mov %0, %%eax\n\t"//Move num to eax "mov %1, %%ebx\n\t"//Move param1 to ebx "mov %2, %%ecx\n\t"//Move param2 to
2
Antworten
Hier ist die Liste der register Beladung codes: einer eax b ebx c ecx d edx S esi D edi Ich konstanter Wert (0 bis 31) q,r dynamisch zugewiesenen register (siehe unten) g eax, ebx, ecx, edx
2
Antworten
In den letzten Tagen spielte ich mit C++, ASM und inline-ASM. Ich weiß, wie ich access basic-Variablen im Speicher und ähnliche Dinge. Jetzt versuche ich, die Arbeit mit floating-point-zahlen in ASM. Ich habe zerlegt diesen code: float
7
Antworten
Ist es möglich, den Zugriff auf 32-bit-Register in C ? Wenn ja, wie ? Und wenn nicht, dann ist es eine Möglichkeit zum einbetten von Assembler-code in C ? Ich bin mit dem MinGW-compiler, durch die Art
1
Antworten
Ich bin nicht in der Lage zu verstehen, wo die assembly-Anweisung retq wieder auf. Ich verstehe, dass wenn meine normale code ausgeführt wird, dann ist es die Rückkehr an die angegebene Adresse in den stack. Aber Woher
6
Antworten
Ich weiß, Java ist eine sichere Sprache, aber bei matrix-Berechnungen erforderlich sind, kann ich versuchen, etwas schneller? Ich Lerne __asm{} in C++, Digital Mars-compiler und FASM. Ich möchte das gleiche zu tun in Java. Wie kann ich
7
Antworten
Den compare Funktion ist eine Funktion, die zwei Argumente nimmt a und b ab und gibt einen integer Beschreibung Ihrer Bestellung. Wenn a ist kleiner als b, das Ergebnis ist eine negative Ganzzahl. Wenn a größer ist
3
Antworten
//quick inline asm statements performing the swap_byte for key_scheduling inline void swap_byte(unsigned char *x, unsigned char *y) { unsigned char t; asm("movl %1, %%eax;" "movl %%eax, %0;" :"=r"(t) :"r"(*x) :"%eax"); asm("movl %1, %%eax;" "movl %%eax, %0;" :"=r"(*x)
3
Antworten
Ich bin mit Code::Blocks code, sondern ein code den ich verwiesen wird, ist von Visual C++,so dass ich Schwierigkeiten habe, den Unterschied...:( den vollständigen code sind hier NAKED void ijlWrite() { __asm { PUSH EBP MOV EBP,
1
Antworten
GCC-inline-assembly-Fehler: error: junk `(%esp) " nach Ausdruck Ich studiere im gcc-inline-assembly. Meine Umgebung ist Win 7 32bit, mingw-gcc 4.6.1. Ich habe ein problem über den 'm' - Bedingung. Hier ist mein c-Funktion code: static int asm_test(int a,
5
Antworten
Wie kann ich die Intel asm code in mein c++ - Anwendung? Ich bin mit Dev-C++. Will ich tun, sth so: int temp = 0; int usernb = 3; pusha mov eax, temp inc eax xor usernb,
1
Antworten
Ich habe einige Schwierigkeiten mit den inline-Assembler-code. Ich weiß, was getan werden sollte, aber ich vermisse das "wie" ! Habe ich diese checksum-Funktion, die ist "fast" funktioniert : static unsigned long cksum_unroll( unsigned short **w, int *mlen)
3
Antworten
Ich versuche zu rufen, eine assembly-Funktion von c,aber ich bekomme immer Fehler. .text .globl integrate .type integrate, @function integrate: push %ebp mov %esp, %ebp mov $0,%edi start_loop: cmp %edi,1024 je loop_exit mov 8(%ebp),%eax mov 12(%ebp),%ecx sub %eax,%ecx
4
Antworten
Ich versuche zu tun, einige Code-Optimierung, Beseitigen Sie Äste, die ursprüngliche c-code ist if( a < b ) k = (k<<1) + 1; else k = (k<<1) Ich beabsichtige, ersetzen Sie es mit Assembler-code, wie unten mov
6
Antworten
Schreibe ich eine performance-kritische, number-crunching C++ - Projekt, wo 70% der Zeit verwendet wird, von der 200 Linie core-Modul. Möchte ich zur Optimierung der Kern-Verwendung von inline-assembly, aber ich bin komplett neu hier. Ich muss allerdings wissen,
4
Antworten
Lerne ich über x86 inline Assembler Programmierung. Wollte ich schreiben mov ecx, FFFFFFBB aber der compiler nicht erkennen. Wie sollte die hex-zahlen wie die, die geschrieben werden, die inline-assembler-code? Welchen compiler / assembler? InformationsquelleAutor Arcytoi | 2012-07-31
3
Antworten
Fange ich mit assembler unter Linux. Ich habe gespeichert, den folgenden code als testasm.c und es kompiliert mit: gcc testasm.c -otestasm Der compiler antwortet: "impossible constraint in 'asm'". #include <stdio.h> int main(void) { int foo=10,bar=15; __asm__ __volatile__
3
Antworten
Nicht warum dieser code-set temp 1? Wie kann ich eigentlich tun? int temp; __asm__( ".intel_syntax;" "mov %0, eax;" "mov eax, %1;" ".att_syntax;" : : "r"(1), "r"(temp) : "eax"); printf("%d\n", temp); InformationsquelleAutor Mehrdad | 2011-03-22
8
Antworten
Möchte ich einige Klarstellungen in Bezug auf einen Punkt über die Lagerung von register-Variablen: Gibt es eine Möglichkeit, um sicherzustellen, dass, wenn wir erklärt haben, eine register-variable in unserem code, es werden NUR dann gespeichert in einem
7
Antworten
In x86 assembly, das overflow-flag wird gesetzt, wenn ein add oder sub Betrieb auf eine Ganzzahl-überläufe, und das carry-flag wird gesetzt, wenn eine operation auf eine unsigned integer-overflows. Jedoch, wenn es um die inc und dec Anweisungen,
9
Antworten
Schreibe ich ein C-code für die Messung der Anzahl von Taktzyklen benötigt, ist der Erwerb einer semaphore. Ich bin mit rdtsc und vor der Messung auf die semaphore, ich nenne rdtsc zwei mal hintereinander zu Messen, der
4
Antworten
Während durch einige C-code mit inline Assembler kam ich über die .byte (mit einem Punkt am Anfang) - Richtlinie. Ist die überprüfung der assembly-Verweis auf die Website, die ich fand, dass es reserviert ein byte im Speicher.
8
Antworten
Ich erinnere mich an eine Weise zur Verwendung des erweiterten gcc-inline-assembly zu Lesen, ein register-Wert und speichern ihn in einer C-variable. Ich kann nicht, obwohl für das Leben von mir denken Sie daran, wie Sie form die
2
Antworten
Ich will schreiben Sie eine kleine low-level-Programm. Für einige Teile davon werde ich brauchen, um assembly-Sprache verwenden, aber der rest des Codes geschrieben werden, die auf C/C++. So, wenn ich mit GCC zu mischen, C/C++ mit Assembler-code
3
Antworten
Ich benutze Visual C++ 2010 Entwicklung von 32-bit-windows-Anwendungen. Es ist etwas, was ich wirklich wollen, für inline-Montage. Aber ich habe gerade festgestellt, dass visual C++ nicht unterstützt inline-assembly in 64bit-Anwendungen. Also die Portierung auf 64bit in der
2
Antworten
In meinen Laufenden Experimenten mit GCC-inline-assembly, habe ich ein neues problem in Bezug auf Etiketten und inline-code. Betrachten Sie die folgenden einfachen Sprung: __asm__ ( "jmp out;" "out:;" : : ); Dieser tut nichts, außer zu springen,
4
Antworten
Wie wird es gemacht? Welche Schritte muss ich ergreifen müssen, und welche Tücken und Fallstricke gibt es zu beachten? InformationsquelleAutor der Frage Hans Sjunnesson | 2008-10-26
7
Antworten
Den compare Funktion ist eine Funktion, die zwei Argumente nimmt a und b ab und gibt einen integer Beschreibung Ihrer Bestellung. Wenn a ist kleiner als bdas Ergebnis ist eine negative Ganzzahl. Wenn a größer ist als
6
Antworten
Bezug auf meine andere Fragebitte helfen Sie mir debug "Eine nicht behandelte Ausnahme des Typs 'System.AccessViolationException " ist in Modul Unbekannt. Zusätzliche Informationen: es wurde Versucht, Lesen oder schreiben von geschütztem Speicher. Dies ist Häufig ein Hinweis
1
Antworten
Wie können wir die Umsetzung der system-Aufruf mittels sysenter/syscall direkt in x86-Linux? Kann jemand helfen? Es wäre noch besser, wenn Sie auch zeigen zu können, den code für amd64-Plattform. Weiß ich, x86, wir können __asm__( " movl
3
Antworten
Schaute ich in C-code aus http://www.mcs.anl.gov/~kazutomo/rdtsc.html Verwenden Sie Sachen wie "inline", "asm" usw. wie folgt: code1: static __inline__ tick gettick (void) { unsigned a, d; __asm__ __volatile__("rdtsc": "=a" (a), "=d" (d) ); return (((tick)a) | (((tick)d) <<
3
Antworten
Bei der Implementierung von lock-free data structures and timing-code ist es oft notwendig, um zu unterdrücken, die compiler-Optimierungen. Normalerweise Menschen tun dies mit Hilfe asm volatile mit memory in die clobber-Liste, aber manchmal sieht man nur asm
4
Antworten
Ich erinnere mich zurück in den Tag, mit dem alten borland compiler konnte man etwas wie das hier tun: asm { mov ax,ex etc etc... } Gibt es eine semi-Plattform-unabhängigen Weg, dies jetzt zu tun? Ich habe
4
Antworten
Soweit ich das beurteilen kann, der einzige Unterschied zwischen __asm { ... }; und __asm__("..."); ist, dass die erste verwendet mov eax, var und die zweite verwendet movl %0, %%eax mit :"=r" (var) am Ende. Welche weiteren