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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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,
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
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
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,
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
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
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;
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
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