Tag: gas

Relevante Themen umfassen den Gnu Assembler (GAS), Makros, Maschine abhängigen syntax, Verknüpfung und Datei-format Probleme. Verwenden Sie generische assembler Fragen, die CPU-tags sind dafür gedacht.

gas vs. nasm: die assembler produziert den besten code?

Anzahl der Antworten 6 Antworten
Beide tools übersetzen Montageanleitung direkt in Maschinen-code, aber ist es möglich, zu bestimmen, die erzeugt man am schnellsten und saubersten code? InformationsquelleAutor | 2009-08-15

Montage 64bit - movl, movq. Das austauschen ist okay?

Anzahl der Antworten 1 Antworten
Kontext: Lern-GAS-Baugruppe auf 64-bit-linux. Viele tutorials sind für 32-bit-assembly. Schwer zu bushwhack durch x86_64 Montage. Frage: Wenn ich kompilieren eines c-Programms mit gcc, ich sehe immer noch einige %eax und movl. Meistens Spiele ich mit int32_t. Aber

Was bedeutet " 0x4 " in "movl $0x2d, 0x4(%esp)"?

Anzahl der Antworten 5 Antworten
Ich bin auf der Suche in Assembler-code, erzeugt durch GCC. Aber ich verstehe nicht: movl $0x2d, 0x4(%esp) In den zweiten Operanden, was bedeutet 0x4 steht für? offset-Adresse? Und was die Verwendung von register EAX? Es bedeutet Speicher[ESP_REG

Das erstellen und aufrufen-Funktion in x86 Assembler (AT&T-syntax)

Anzahl der Antworten 1 Antworten
Bitte geben Sie mir ein sehr einfaches Beispiel von erstellen einer Funktion und Aufruf in x86 Assembler (AT&T-syntax). Actaully, ich bin versucht, zu erstellen eine Funktion, die berechnet factorial einer Zahl. Dies ist, was ich getan habe

Was bedeutet das “.richten Sie" x86-Assembler-Richtlinie genau?

Anzahl der Antworten 4 Antworten
Werde ich eine Liste genau das, was ich nicht verstehe, und zeigen Sie die Teile, die ich nicht verstehen kann, wie gut. First off, Die .Richten Sie Die Richtlinie .richten integer, pad. Die .align-Direktive bewirkt, dass die

Das, was funktioniert .comm bedeuten?

Anzahl der Antworten 2 Antworten
Ich habe gerade übersetzt das Programm, #include <stdio.h> int dam[1000][1000]; int main (int argc, const char * argv) { //insert code here... printf("Hello, World!\n"); return 0; } assembly mit gcc produziert, .cstring LC0: .ascii "Hello, World!\0" .text

Zum installieren und verwenden von GAS (der GNU-Compiler auf Linux?

Anzahl der Antworten 5 Antworten
Ich bin mit Ubuntu, und ich war auf der Suche nach einem assembler-compiler für Linux, und ich fand, GAS. Ich versuche es zu installieren und es auszuführen, aber ich kann nicht. InformationsquelleAutor rogcg | 2010-11-23

Was bedeutet die Klammer in " movl (%eax), %eax` bedeuten?

Anzahl der Antworten 3 Antworten
Habe ich genug gegoogelt, konnte aber nicht herausfinden, was die Halterung () bedeutet. Außerdem sehe ich einige syntax als movl 8(%ebp), %eax Könnte jemand einige empfehlen mir ein paar gute Referenz? Ich habe nicht in der Lage

Wie man den GNU-Assembler benutzen Sie einen Schrägstrich / für Kommentare?

Anzahl der Antworten 3 Antworten
Dies ist in der Tat eine dumme Eigenart von mir, aber ich kann nicht ertragen, wie GNU AS verwendet, um einen Kommentar einzufügen. Auch ich bin an die Sonne gewöhnt werden (die gleichen, die in den meisten

MOV src dest (oder) MOV dest, src?

Anzahl der Antworten 3 Antworten
MOV ist wohl der erste Befehl jeder lernt beim lernen von ASM. Gerade jetzt stieß ich auf ein Buch Assembler-Programmierung unter GNU/Linux für IA32-Architekturen, die Von Rajat Moona, die sagt: alt-text http://i.imagehost.org/0897/mov.gif Aber ich habe gelernt, dass

Wie viele byes ist jede Anweisung kompiliert, um in x86 Assembler?

Anzahl der Antworten 5 Antworten
0x004012d0 <main+0>: push %ebp 0x004012d1 <main+1>: mov %esp,%ebp 0x004012d3 <main+3>: sub $0x28,%esp Wenn die Adresse nicht verfügbar, können wir berechnen, es selbst? Ich meine, wir haben nur die: push %ebp mov %esp,%ebp sub $0x28,%esp Sie wollen, dass

internen Umzug nicht behoben

Anzahl der Antworten 2 Antworten
ich habe vor kurzem angefangen assembler-Programmierung für arm-cores. Meine erste kleine demos, die nur mit den .text-Abschnitt, lief ohne Probleme. Als eine logische Erweiterung wollte ich die Struktur der assembler-code in die üblichen Abschnitte: .text .Daten .bss

Gewusst wie: aufrufen von C-Funktionen von ARM-Assembly?

Anzahl der Antworten 4 Antworten
Ich bin das schreiben von code targeting ARM-Cortex-A-auf Android-Geräte (mit GNU assembler und compiler), und ich versuche, die Schnittstelle zwischen Montage und C. insbesondere bin ich daran interessiert, den Aufruf von Funktionen in C geschrieben, von der

ASM-Aufruf Printf

Anzahl der Antworten 2 Antworten
movl %ebx, %esi movl $.LC1, %edi movl $0, %eax call printf Verwende ich die folgenden asm-code zu drucken, was ist in EBX registrieren. Wenn ich movl $1,%eax int 0x80 und die echo $? bekomme ich die korrekte

Schreiben von Assembler-code mit avr-gcc

Anzahl der Antworten 3 Antworten
Ich kaufte vor kurzem ein Arduino Uno, das ist im Grunde ein atMega328 avr Prozessor mit allen details wie I/O und den Anschluss an den computer aufpassen, für Sie. Habe ich erfolgreich geschriebenen code mit der Arduino

Was bedeutet die Klammer in " movl (%eax), %eax` bedeuten?

Anzahl der Antworten 3 Antworten
Habe ich genug gegoogelt, konnte aber nicht herausfinden, was die Halterung () bedeutet. Außerdem sehe ich einige syntax als movl 8(%ebp), %eax Könnte jemand einige empfehlen mir ein paar gute Referenz? Ich habe nicht in der Lage

Aufruf von printf in x86_64 GNU assembler

Anzahl der Antworten 2 Antworten
Ich habe ein Programm geschrieben, mit AT&T syntax für die Verwendung mit dem GNU-assembler: .data format: .ascii "%d\n" .text .global main main: mov $format, %rbx mov (%rbx), %rdi mov $1, %rsi call printf ret Benutze ich GCC

x86_64-Montage-Linux System Call Verwirrung

Anzahl der Antworten 5 Antworten
Ich bin zurzeit das lernen von Assembler unter Linux. Ich habe mit dem Buch "Programming From the Ground Up' und alle Beispiele sind 32-bit. Mein OS ist 64-bit und ich habe versucht, alles zu tun, die Beispiele,

x86 assembler: floating point vergleichen

Anzahl der Antworten 1 Antworten
Als Teil eines compiler-Projekt, an dem ich zu schreiben, GNU assembler-code für x86 zu vergleichen floating-point-Werte. Ich habe versucht, Ressourcen zu finden, wie dies online und von dem, was ich verstehe, es funktioniert wie folgt: Vorausgesetzt, die

Wozu werden CFI-Anweisungen in Gnu Assembler (GAS) verwendet?

Anzahl der Antworten 3 Antworten
Scheint es nicht zu sein .CFI-Richtlinie nach jeder Zeile und auch gibt es eine Breite varities dieser ex.,.cfi_startproc , .cfi_endproc etc.. mehr hier. .file "temp.c" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset

GAS: Erklärung von .cfi_def_cfa_offset

Anzahl der Antworten 2 Antworten
Ich würde gerne eine Erklärung für die Werte verwendet, mit der .cfi_def_cfa_offset Richtlinien-assembly generiert, die von GCC. Ich weiß vage, dass die .cfi-Richtlinien beteiligt sind, in call-frames und der stack-unwinding, aber ich würde gerne eine genauere Erklärung,

Aufruf von Assembly-Funktionen von c

Anzahl der Antworten 4 Antworten
Ich versuche, eine Funktion in der Assemblierung, die aufgerufen wird, aus einem C-Projekt. Diese Funktion soll Aufruf einer libc Funktion sagen wir mal printf()aber ich bekomme immer ein "segmentation fault". In der .c-Datei habe ich die Deklaration

Wie erzeugt man einen nasm kompilierbaren Assembler-Code aus dem c-Quellcode unter Linux?

Anzahl der Antworten 2 Antworten
Test-Plattform 32-bit-Linux. Im Grunde, ich weiß, der gcc verwendet werden können, zu generieren, die sowohl Intel-und At&T-Stil Assembler-code, aber es scheint, dass Sie kann nicht direkt nasm/tasm zu kompilieren die Intel-style Assembler-code, der gcc erzeugt. Ich bin

Fehler "keine solche Anweisung" beim Zusammenstellen eines Projekts unter Mac OS X

Anzahl der Antworten 3 Antworten
Ich verwendet, homebrew zu installieren GCC-4.7.0 und mein Projekt machen ist, andernfalls an die Montage-Zeit. Ich kann zum Erfolg führen code aus .c -> .s, aber .s -> .o scheitert. Anzeigen der brew-Formel verwendet GCC zu installieren,

Wie verwende ich RIP Relative Adressierung in einem 64-Bit-Assemblierungsprogramm?

Anzahl der Antworten 1 Antworten
Wie setze ich das RIP-Relative Adressierung in einem Linux-Assembler-Programm für die AMD64-Architektur? Ich bin auf der Suche nach einem einfachen Beispiel ("Hello world" - Programm) verwendet, die die AMD64-RIP-relatives adressing mode. Beispielsweise die folgenden 64-bit-Assembler-Programm würde funktionieren

NASM gegen GAS (praktische Unterschiede)

Anzahl der Antworten 2 Antworten
Ich versuche nicht prompt eine Intel vs AT&T war (strittiger Punkt sowieso, jetzt, dass Sie sowohl die Unterstützung von Intel-syntax) oder Fragen, die eine ist "besser" per se, ich will nur wissen, die praktischen Unterschiede in das

Was macht CLTQ in der Montage?

Anzahl der Antworten 4 Antworten
0x0000000000400553 <main+59>: mov -0x4(%rbp),%eax 0x0000000000400556 <main+62>: cltq 0x0000000000400558 <main+64>: shl $0x3,%rax 0x000000000040055c <main+68>: mov %rax,%rdx In der Tat mein Programm ist so einfach wie : 5 int main(int argc, char *argv) { 6 int i = 0;

Ungültiges Anweisungssuffix für Push bei der Montage mit Gas

Anzahl der Antworten 4 Antworten
Beim Aufbau einer Datei mit dem GNU-assembler bekomme ich die folgende Fehlermeldung: Hallo.s:6: Fehler: ungültige Anweisung suffix für `push' Hier ist die Datei, die ich versuche zu montieren: .text LC0: .ascii "Hello, world!\12\0" .globl _main _main: pushl

Ist es möglich, Threads ohne Systemaufrufe in Linux x86 GAS Assembly zu erstellen?

Anzahl der Antworten 7 Antworten
Beim lernen auch die "assembler-Sprache" (in linux auf einer x86-Architektur mit den GNU-as assembler), einer der aha-Momente wurde die Möglichkeit der Verwendung von Systemaufrufe. Die Anrufe kommen in sehr praktisch und manchmal sogar notwendig, da Ihr Programm