... von Assembler zu Maschinencode uebersetzen...?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • ... von Assembler zu Maschinencode uebersetzen...?

      Ya... wie der Titel schon sagt... ich wuesst gern, wie ich (von Hand versteht sich) nen Assembler-Quelltext in Maschinencode uebersetzen kann.

      Abgesehen von der ersten Spalte, wo der Code fuer den Befehl steht hab ich leider noch nix davon verstanden xD' Bin fuer jede Hilfe dankbar :3

      (aber kommt mir bitte nicht mit googlen... das funzt bei mir ned xD'...)
    • Von HAND!? Bist Du noch zu retten!? :ugly: Assembler ist schon so fehleranfällig genug, wenn Du jetzt noch versuchst, VON HAND in Maschinensprache zu überführen (assemblieren, nicht kompilieren), wird das nix, glaub mir. :ugly:

      Ein Assembler: NASM: sourceforge.net/projects/nasm (herunterladen von kernel.org/pub/software/devel/nasm/ )

      Wenn Du noch keinen hast, hier ist noch ein Linker: ALINK: sourceforge.net/projects/alink

      MfG
      Ark

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ark ()

    • Original von Ark
      Von HAND!? Bist Du noch zu retten!? :ugly: Assembler ist schon so fehleranfällig genug, wenn Du jetzt noch versuchst, VON HAND in Maschinensprache zu überführen (assemblieren, nicht kompilieren), wird das nix, glaub mir. :ugly:


      Nyaa~ schon klar, aber ich hab's mir ya ned ausgesucht... xD'
      Unser Infolehrer hat halt auch so seine komischen ticken xD...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Neo-chan ()

    • Hm, dann zeig mal das Programm. :D

      (An alle, die mit Assembler nicht vertraut sind: Solche Programme sind eher „lang“ als „breit“, also nicht wundern. ^^ Wer sich die Zunge brechen will, darf sie auch vorlesen. :ugly: )

      EDIT: Na gut, es stimmt eigentlich: Im Gegensatz zu anderen (höheren) Programmiersprachen ist es tatsächlich möglich, Assemblercode manuell zu assemblieren.
      … Die Aufgabe ist trotzdem bescheuert. :rolleyes:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ark ()

    • Okaaaay~

      GGT

      ini a
      ini b
      loop lda 0,'0'
      cmp 0,b
      be ausgabe
      lda 0,a
      div 0,b
      mul 0,b
      sta 0,q
      lda 0,a
      sub 0,q
      sta 0,rest
      lda 0,b
      sta 0,a
      lda 0,rest
      sta 0,b
      b loop
      ausgabe lda 0,a
      sta 0,ggt
      outi ggt
      eoj

      a ds f
      b ds f
      q ds f
      rest ds f
      ggt ds f


      yoa, das ist soweit das Prog... die kursiven gehoern in die spalte davor, ist im forum nur was laestig so darzustellen xD'

      nya, und das hier ist wie weit ich bereits mim uebersetzen bin, fehlen halt noch die 6 spalten dahinter xD'...
      Zeilenangabe und ersten beiden stellen im Maschinencode... ( die Adressen die ya normal nach der Zeilenangabe und vor dem Maschinencode stehn brauch ich nicht...)

      0001 72
      0002 72
      0003 58
      0004 59
      0005 47
      0006 58
      0007 5D
      0008 5C
      0009 50
      0010 58
      0011 5B
      0012 50
      0013 58
      0014 50
      0015 58
      0016 50
      0017 47
      0018 58
      0019 50
      0020 73
      0021 0A
    • Hm, die Rechnerarchitektur ist mir nicht unbedingt geläufig, aber 80x86er ist das nicht. Der Code erinnert zwar stark an 6510, ist es aber auch nicht. (LDA=load accu; STA=store accu, richtig?)

      Sorry, aber jetzt muss ich passen. ._.

      Hast Du nicht einen passenden Assembler und einen Hex-Editor oder sogar einen Disassembler oder Einzelschrittsimulator? Damit lässt sich doch so was ganz einfach machen. ?(

      Tut mir Leid, dass ich hier (noch) nicht mehr wirklich weiterhelfen kann. (Es sei denn, Du lässt die Codes rüberwachsen, aber das wird schwieriger sein als die Aufgabe selbst. ^^)

      (Wenigstens verstehe ich das ganze Programm, das ist ja immerhin etwas. :rolleyes: )

      Ark

      EDIT: Mal eine Frage nebenbei: Setzt lda das Zero-Flag entsprechend? Wenn ja, kann man in dem Programm etwas vereinfachen. :3 (Sorry, aber wenn ich Assembler nur höre, kriege ich so einen extremen Perfektionismusanfall. :ugly: )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ark ()

    • Original von Ark
      Hast Du nicht einen passenden Assembler und einen Hex-Editor oder sogar einen Disassembler oder Einzelschrittsimulator? Damit lässt sich doch so was ganz einfach machen. ?(


      Nein, hab ich nicht xD'
      WTF ist ein Einzelschrittsimu? oO'

      Original von Ark
      EDIT: Mal eine Frage nebenbei: Setzt lda das Zero-Flag entsprechend? Wenn ja, kann man in dem Programm etwas vereinfachen. :3 (Sorry, aber wenn ich Assembler nur höre, kriege ich so einen extremen Perfektionismusanfall. :ugly: )


      Naechste Frage, was ist ein Zero-Flag? xD' *nie gehoert hab* ^^"
    • Original von Neo-chan
      Naechste Frage, was ist ein Zero-Flag? xD' *nie gehoert hab* ^^"

      Das Zero-Flag ist ein Bit im Statusregister, das gesetzt ist, wenn das Ergebnis der letzten Operation, die das Zero-Flag beeinflussen kann, 0 ist. Dieses Programm benutzt einmal das Zero-Flag (bei "be ausgabe"), darum wundert mich gerade, warum Du das nicht weißt. ?( Was habt ihr denn für einen Info-Unterricht?! Der Lehrer ist doof! (Hoffentlich liest er das hier nicht. :ugly: )

      Am besten, wir besprechen das Weitere via ICQ. ;)

      Ark

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ark ()

    • Original von Ark
      Original von Neo-chan
      Naechste Frage, was ist ein Zero-Flag? xD' *nie gehoert hab* ^^"

      Das Zero-Flag ist ein Bit im Statusregister, das gesetzt ist, wenn das Ergebnis der letzten Operation, die das Zero-Flag beeinflussen kann, 0 ist.
      Ark


      ô-O
      Hab ich noch nie was von gehoert xD'

      Original von Ark
      Am besten, wir besprechen das Weitere via ICQ. ;)
      Ark


      Nya, bin sehr selten on, ma sehn ob ma sich ma trifft xDb