was ist aktuell? oder wo fang ich an?



  • In der Universität haben wir Assembler anhand des MIPS 2000 gelernt.
    War ein sehr begrenzter Befehlssatz, der auch einen recht guten Einstieg in Assembler bot.

    Ich möchte aber gern mal etwas schreiben, dass ich ohne mir vorher einen Mikrokontroller kaufen zu müssen auch anwenden kann.
    Praktisch etwas dass auf heutigen Prozessoren läuft,
    so mit ein wenog Halbwissen hab ich da was x86 im Kopf...
    ist das nun eine Art Grundarchitektur oder Befehlssatz?
    Schließlich gibts ja mehrere Generationen davon wenn ich das auf Wikipedia richtig verstanden habe.

    Also womit fange ich das Assembler lernen an?

    Was brauche ich ausser einem Editor?



  • Jo, der MIPS hat einen schoen kompakten Befehlssatz.

    Alle aktuellen PC-CPU sind noch immer mit dem x86-, bzw. IA-32-Befehlssatz kompatibel. Zusaetzlich wurde eine ganze Reihe Spezialbefehle hinzugefuegt. Die muss man aber erstmal nicht unbedingt kennen.

    Zu einem Editor brauchst du noch den Assembler zum Umwandeln der Asm-Sourcen zu binaeren Maschinencodes (Siehe FAQ - zB. NASM). Zum Erstellen von PC-Programmen (zB. exe) brauchst du dann noch einen Linker (bringt zB. eigentlich jeder Hochsprachencompiler mit).



  • Nobuo T schrieb:

    Zu einem Editor brauchst du noch den Assembler zum Umwandeln der Asm-Sourcen zu binaeren Maschinencodes (Siehe FAQ - zB. NASM). Zum Erstellen von PC-Programmen (zB. exe) brauchst du dann noch einen Linker (bringt zB. eigentlich jeder Hochsprachencompiler mit).

    oder ein komplettpaket, das hier, finde ich völlig geil: http://betov.free.fr/
    (ist quasi das 'netbeans' für assembler, garantiert kein makefile-gefrickel, ohne furchtbare at&t-syntax, viele tools unter einer haube usw.) sogar mit eingebautem asm-kurs.
    🙂



  • Oder installiere Dir eine andere Komplettpaket-IDE, Linux z.B. 😉



  • was verwende ich unter linux am besten?

    als editor scite?
    oder eclipse assembly plugin?

    und was verwende ich sonst noch ?!



  • shisha schrieb:

    was verwende ich unter linux am besten?

    RosAsm unter 'wine' (vielleicht geht's ja). hast du kein windoofs?
    🙂



  • shisha schrieb:

    was verwende ich unter linux am besten?

    als editor scite?
    oder eclipse assembly plugin?

    und was verwende ich sonst noch ?!

    Als Editor ist jedes Programm geeignet, mit dem Du persönlich klar kommst. (Kleiner Tipp: vi ist nicht schlecht ;))
    Dann tippst Du Dein Assembler Programm ein, speicherst es unter z.B. main.s und dann in der Shell führst das hier aus:

    # as main.s -o main.o
    # ld main.o -o gaga_exe
    

    Und dann kannst Du das Programm ausführen:

    # ./gaga_exe
    

    as ist der GNU Assembler, ld ist der GNU Linker.
    Das war's, mehr brauchst Du nicht erstmal... Später kann man natürlich irgendein Klickibunti-Programm ausprobieren 😉



  • abc.w schrieb:

    ...vi...Shell...GNU Assembler...GNU Linker

    hihi, du hast noch 'make' vergessen. aber warum nicht gleich mit'm hexeditor? *fg*
    🙂



  • klar hab ich auch ne windoof partition, di e ist aber eigentlich nur noch zum zocken da^^

    arbeiten tu ich eig unter linux (kubuntu für normale sachen, gentoo für sehr experimentelles)

    also werd ich mich mal ans werk machen?

    welches klickibuntu programm ist denn empfehlenswert?

    ps
    vi ist bei mir nicht drin allerhöchstens nano^^





  • ;fricky schrieb:

    abc.w schrieb:

    ...vi...Shell...GNU Assembler...GNU Linker

    hihi, du hast noch 'make' vergessen. aber warum nicht gleich mit'm hexeditor? *fg*
    🙂

    Ach genau. Die obigen Zeilen kann man in ein hochkompliziertes Makefile einfügen, z.B.:

    all:
            as main.s -o main.o
            ld main.o -o gaga_exe
            @echo Fertig! gaga_exe wurde erstellt!
    

    Oder, wie es die modernen IDEs machen, am Besten alles verstecken, was man verstecken kann, so dass man erstmal nicht sieht, ob etwas passiert ist oder nicht, also ungefähr so:

    all:
            @as main.s -o main.o 1> /dev/null 2> /dev/null
            @ld main.o -o gaga_exe 1> /dev/null 2> /dev/null
    


  • abc.w schrieb:

    Oder, wie es die modernen IDEs machen, am Besten alles verstecken, was man verstecken kann, so dass man erstmal nicht sieht, ob etwas passiert ist oder nicht...

    computer sind nunmal auch dazu da, dem menschen stupide tätigkeiten abzunehmen. aber ein echter nostalgiker wird sowas wohl kaum verstehen. *fg*
    🙂



  • Ich hab es natürlich ein wenig übertrieben, lese gerade "The design of everyday things" von Donald A. Norman, es geht zwar nicht um die Software - aber echt lesenswert 🙂



  • computer sind nunmal auch dazu da, dem menschen stupide tätigkeiten abzunehmen.

    Das sehe ich aus eigener Erfahrung ganz anders. Seit der Einführung der PCs in den 80er Jahren müssen gerade Führungskräfte und Experten sich verstärkt mit Dingen beschäftigen, die früher eine spezialisierte und damit effiziente Hilfskraft für sie erledigt hat. Beispiele: Briefe, Notizen und e-mail schreiben (ohne 10-Finger-System) mit Programmen, die sie nicht wirklich vollständig beherrschen (MS Word, Lotus Notes, ...), überflüssige Präsentationen selbst in diesem schrecklichen MS PowerPoint bis zur letzten Formatierung ausarbeiten, Kalkulationen selbst in MS Excel aufbauen, etc.

    Für Number crunching sind die Kisten allerdings gut geeignet.



  • und bevor jetzt alle in Grundlagendiskussionen verfallen:

    Wie fange ich an unter Linux Assembler zu lernen, damit ich möglichst rasch zumindest einen Teil von Hekes OS verstehen kann?

    ist da editor + as ausreichend oder soll ich lieber etwas anderes suchen?
    Ab wann lohnt es sich ein makefile zu schreiben?

    Im Moment bin ich Gott sei Dank etwas in Stress, sonst wär ich jetz schon verzweifelt ^^



  • Editor und as sind ausreichend. Wobei du as wahrscheinlich über gcc aufrufen willst: Wenn du deine Datei *.S nennst, bekommst du damit zu as auch noch den Präprozessor dazu (funktioniert dann genauso wie in C, z.B. #define, und auch C-Kommentare gehen dann).

    Eine Makefile brauchst du grob gesagt ab dann, wenn es dir zu umständlich wird, von Hand zu kompilieren. Also wahrscheinlich ab der zweiten Quellcodedatei. 😉



  • abc.w schrieb:

    lese gerade "The design of everyday things" von Donald A. Norman, es geht zwar nicht um die Software - aber echt lesenswert

    der titel hört sich vielversprechend an. danke für den tip.

    Erhard Henkes schrieb:

    computer sind nunmal auch dazu da, dem menschen stupide tätigkeiten abzunehmen.

    Das sehe ich aus eigener Erfahrung ganz anders. Seit der Einführung der PCs in den 80er Jahren müssen gerade Führungskräfte und Experten sich verstärkt mit Dingen beschäftigen, die früher eine spezialisierte und damit effiziente Hilfskraft für sie erledigt hat.

    dass in vielen betrieben vieles schief läuft, ist ja nix neues. aber wieso glaubst du, dass computer nicht dazu da sind, den menschen arbeit abzunehmen, oder hab' ich dich falsch verstanden?
    🙂



  • shisha schrieb:

    Wie fange ich an unter Linux Assembler zu lernen, damit ich möglichst rasch zumindest einen Teil von Hekes OS verstehen kann?

    Kannst Dich ja gleich mit dem OS beschäftigen.

    shisha schrieb:

    ist da editor + as ausreichend oder soll ich lieber etwas anderes suchen?

    Ja, Editor, as und ld sind ausreichend. Hängt davon ab, wie gut Du die Tools kennst...

    shisha schrieb:

    Ab wann lohnt es sich ein makefile zu schreiben?

    Ich bin der Meinung, immer. Ich sehe es auch als gleichzeitige Dokumentation an. Ein Makefile ist eine Textdatei, dort steht, was man gemacht hat und wie...



  • Ein Makefile ist eine Textdatei, dort steht, was man gemacht hat und wie...

    ROFL



  • @ schrieb:

    Ein Makefile ist eine Textdatei, dort steht, was man gemacht hat und wie...

    ROFL

    Ja, es gibt nichts besseres als eine Textdatei...


Log in to reply