Assembler-Buch von Reiner Backer / Linux und 32bit Frage



  • Hallo,
    ich hab mir vor einigen Tagen das Assembler-Buch von Reiner Backer
    gekauft. Das Buch ist soweit auch ganz verständlich, doch da ich unter
    Linux arbeite tauchen jdeoch einige Fragen für mich auf. Ich hoffe ihr könnt
    mir mit der ein oder anderen Frage weiterhelfen:

    1. Backer teilt im Buch das Programm in verschiedene Teile:

    DATEN SEGMENT
    ...
    DATEN ENDS
    
    CODE SEGEMENT...
    

    Unter Linux bekomme ich hierbei mit dem nasm einen Fehler, weshalb
    ich folgendes schreibe:

    section .data          ;Äquivalent zu DATEN SEGMENT?
    buffer: dw 1024
    size: equ 1024
    
    section .text          ;Äquivalent zu CODE SEGMENT?
       global _start
    

    Wo liegt der Unterschied, was soll ich verwenden?
    Muss ich vll. meinem nasm andere optionen mitgeben?

    2.
    Backer benutzt nur Register wie ax,bx... Aus Halbwissen weis
    ich bzw. glaube ich das man dies eigentlich nur benutzt wenn man
    16bit code erzeugt. Und das Dinge wie z.B. die Speicheradressierung
    unter 32bit mit eax,ebx.. ganz anders funktionieren.
    Kann ich also mit dem Buch wenn ich 32bit verwenden will
    nichts anfangen, oder ist das für die Grundlagen egal.

    3.
    Was muss ich unter Linux noch beachten, wenn ich Assembler programmiere,
    welche Unterschiede gibt es zur programmierung unter DOS?
    (Syscalls unter Linux hab ich mir schon selbst beigebracht,
    und das compilieren und schreiben einfacher Programme kann ich auch).

    Ich weis 3 Fragen in einem Thread, aber 3 verscheidene Thread hielt ich für unnnötig.
    Ich hoffe jemand kann mir einfach ein paar Stichworte geben was bei Linux
    im Unterscheid zu DOS bzw 16bit im Unterschied zu 32bit zu beachten ist.

    Vielen Dank schonmal...



  • Das Buch ist dreck. Wirf es weg. Er behandelt Themen, die einen in den 80ern noch gerade interessiert hätte. Nur 16 Bit 8086 Zeugs für MASM.

    Schau dir mal folgende Links an
    http://maven.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html
    http://www.gnu.org/software/binutils/manual/gas-2.9.1/html_mono/as.html

    unter Linux benutzt man in der Regel AT&T-Syntax und keine Intel-Syntax.



  • Hm, hab mir beinah schon gedacht das ich nicht viel mit dem
    Buch anfangen kann, naja einige Teile sind ganz interessant
    und billig wars auch.

    Aber auf jeden Fall vielen Dank für die Links 👍
    Ich glaub damit kann ich mehr anfangen.

    //EDIT:
    Hm, der erste link behandelt allerdings (nachdem ich alles mal grob
    überflogen hab) auch nur 16bit masm Assembler.



  • Der Link behandelt auch 80486/80386er. Gut, er beschränkt sich auf die MASM-Syntax. Aber gute Quellen zu Assembler sind selten. Am Ende sucht man sich alles aus mehreren Quellen zusammen (gas-Handbuch für die gas-Syntax, Quellen des Prozessor-Herstellers als Referenz und Guide, diverse Internet-Quellen für Tricks/grobe Übersichten, Compiler-Assembler-Ausgabe für noch mehr Tricks und zum Verständnis, Betriebssystem/Compiler-Specs für Call-Conventions und ABI etc.). Die Informationen zu finden, die man braucht ist vermutlich das schwierigste an der Assembler-Programmierung 😉

    Zum Glück braucht man Assembler nur noch für µCs oder andere spezial Fälle 🙂



  • Dass das Buch Dreck ist, würde ich nicht so sagen.
    Ich finde das Buch super verständlich und für einen .asm Anfänger gut geeignet auch wenn's Unterschiede ala NASM gibt.
    Und ohne 16bit Asm kommt man nicht aus wenn man wirklich Assembler lernen will.



  • Keine Ahnung schrieb:

    Und ohne 16bit Asm kommt man nicht aus wenn man wirklich Assembler lernen will.

    doch ziemlich gut eigentlich



  • Lieber Moderator Rüdiger...

    Dreck?

    Wegwerfen?

    Nicht Ihr Ernst, oder?

    K.



  • K. schrieb:

    Lieber Moderator Rüdiger...

    Dreck?

    Wegwerfen?

    Nicht Ihr Ernst, oder?

    K.

    upps, ist das hier etwa der Autor vom Buch? 😃

    MfG borgolte


Anmelden zum Antworten