ASM? wieso das? was los?



  • moin,
    also ich wollte asm lernen und wollte wiessen, wieso man das noch braucht?

    nja asm ist geil, kompliziert, directe verbindung mit der CPU, schnell, langer code, aber sonst wieso?



  • Assembler (bzw. der daraus resultierende Maschinencode) ist eben die Form, in der der Prozessor seine Anweisungen entgegennimmt. Dass es Compiler gibt, die einem helfen, diesen Maschinencode zu erzeugen ist ja nur ein netter Komfort. Assembler ist gut, wenn dir die Arbeit des Compilers für deine Zwecke zu undeterministisch ist und du lieber selbst bestimmen willst, wie das Resultat aussieht oder wenn du hardwarenah außerhalb eines Betriebssystems programmieren willst.



  • masterofx32 schrieb:

    undeterministisch

    lol. your attempt to be smart failed 😃



  • loller schrieb:

    masterofx32 schrieb:

    undeterministisch

    lol. your attempt to be smart failed 😃

    Kann man das nicht so sagen? Oder gibt's nur "nichtdeterministisch"?



  • wenn Du mal ein paar Sachen auf der "untersten" Ebene umgesetzt und durchgespielt hast (z.B arrays/verschachtelte Arrays, eigener Stack, Rekursion, verkettete Listen usw.) verstehst Du besser die "höhere" Ebene - das wie und warum.
    Kann ja nie verkehrt sein, zu wissen, was hinter der ganzen Abstraktion steckt.
    (Übertragen:Als Autofahrer kann es ja nie verkehrt sein, zu wissen, warum ein Auto überhaupt fährt, wenn man das Gaspedal betätigt 😉 )



  • masterofx32 schrieb:

    loller schrieb:

    masterofx32 schrieb:

    undeterministisch

    lol. your attempt to be smart failed 😃

    Kann man das nicht so sagen? Oder gibt's nur "nichtdeterministisch"?

    "undeterministisch" bedeutet, dass nicht reproduzierbare und undefinierte Zustände auftreten können. Da ein Compiler nicht mit "undeterministischen" Algos arbeiten kann, ist der Ausdruck hier bissel unpassend.



  • interpreter schrieb:

    masterofx32 schrieb:

    loller schrieb:

    masterofx32 schrieb:

    undeterministisch

    lol. your attempt to be smart failed 😃

    Kann man das nicht so sagen? Oder gibt's nur "nichtdeterministisch"?

    "undeterministisch" bedeutet, dass nicht reproduzierbare und undefinierte Zustände auftreten können. Da ein Compiler nicht mit "undeterministischen" Algos arbeiten kann, ist der Ausdruck hier bissel unpassend.

    Das ist ja klar, dass der Compiler schon den Maschinencode(oder was auch immer) erzeugt, der auch den definierten Zweck erfüllt. Die genaue Arbeit des Compilers ist aber aus Sicht des Programmierers nichtdeterministisch, weil er sich im Idealfall nur an den Standard hält und der Compiler diesen auch bestmöglich umsetzt und sein Code mit jedem Compiler für jeden Prozessor lauffähig ist. Natürlich kann er mit einem bestimmten Compiler in einer bestimmten Version nachschauen, welcher Maschinencode dabei entsteht. Aber wenn er den Code veröffentlicht, kann er nicht wissen, mit welchen Compilern andere Personen seinen Code compilieren und somit, welcher Maschinencode daraus entsteht. Dass es in der Praxis nicht so ist und man sich leider doch an die Eigenheiten diverser Compiler anpassen muss, ist ja so nicht vorgesehen.
    In der Netzwerktechnik werden Netzwerke, in denen Kollisionen auftreten ja auch als "nichtdeterministisch" bezeichnet, obwohl die Daten natürlich wie gewünscht am Ziel ankommen.(Ist natürlich nicht ganz das gleiche, weil dort wirklich unvorhersehbares Verhalten vorliegt, aber ich finde den Begriff auch bei dem besprochenen Sachverhalt anwendbar) 🙂


Anmelden zum Antworten