Verständnisproblem Hardware



  • Hallo,

    früher wurde ja noch mit 0ern und 1ern programmiert. Heute verwendet man z.B. Assembler. Wenn ich jetzt folgenden Assembler Befehl eingebe z.B.

    MOV R1,#100
    

    dann ist das doch nichts anderes als ein string. Der liegt irgendwo im Speicher rum. Wie funktioniert das jetzt dass daraus 0 und 1 werden ? Wie ist hardwaretechnisch eine Schleife realisiert ?



  • blurry333 schrieb:

    Wie funktioniert das jetzt dass daraus 0 und 1 werden ?

    Ein Programm namens Assembler übersetzt das.

    Wie ist hardwaretechnisch eine Schleife realisiert ?

    Die Hardware weiß nichts von Schleifen. Programmierung ist immer noch Software.



  • Ich weiss dass es ein Assembler übersetzt. Aber wie funktioniert das ? Wie heisst der entsprechende Assembler Befehl umd das zu erreichen ? Ich denke die Frage ist nicht trivial , da es die nächste Entwicklungsstufe war , vorher wurde ja noch mit 0 und 1 programmiert.


  • Mod

    blurry333 schrieb:

    Wie ist hardwaretechnisch eine Schleife realisiert ?

    Die Erklärung ist nicht von mir, aber ich zitiere mal:

    Rechts steht ein weißer Elefant und links ein grauer, allerhand! Sie wollen ihre Rüssel winden und daraus eine Schleife binden!

    Der Weiße streckt den Rüssel her, der graue legt ihn drüber, quer. Er hat ihn daraufhin verbogen und unter dem weißen durchgezogen.

    Die Elefanten ziehen jetzt ihre langen Rüssel fest. Grau hat eine Schleife erfunden, und Weiß hat sich herumgewunden.

    Greif mit zwei Fingern in den Kreis, genau zwischen Grau und Weiß, fasse den weißen Rüsselrest und zieh ihn durch - die Schleife wird fest.

    Du hast sie geschafft, mit sehr viel Fleiß, die Rüsselschleife in grau und in weiß.



  • blurry333 schrieb:

    Ich weiss dass es ein Assembler übersetzt. Aber wie funktioniert das ?

    Sag mal, hast du nicht vor ein paar Jahren hier ständig Fragen zur Technischen Informatik gestellt? Alles vergessen?

    Wie heisst der entsprechende Assembler Befehl umd das zu erreichen ?

    Ein Assembler-Befehl um was zu erreichen?

    Ich denke die Frage ist nicht trivial , da es die nächste Entwicklungsstufe war , vorher wurde ja noch mit 0 und 1 programmiert.

    Ich denke mal, dass man sehr schnell, wenn nicht gar von Anfang an, mit Assembler-Mnemonics programmiert hat. Allerdings auf Papier, und dann hat man die Befehle anhand von Tabellen per Hand in Binärcode übertragen. Und dann dürfte es nicht mehr lange gedauert haben, bis man diesen Prozess automatisiert hat.



  • @Bashar
    Wieso antwortest du blurry noch?



  • Und wie hat man es automatisiert ? Das Assembler Programm steht als ganz normaler TExt im Speicher. Was passiert jetzt ?



  • hustbaer: Das frag ich mich auch immer wieder. 😕



  • blurry333 schrieb:

    Und wie hat man es automatisiert ? Das Assembler Programm steht als ganz normaler TExt im Speicher. Was passiert jetzt ?

    Der Assembler nimmt das Assembler Programm und übersetzt es in Nullen und Einsen.



  • Der Assembler ist doch selbst nur ein Programm.



  • Und der erste Assembler wurde in "0en und 1en programmiert"...



  • Und der erste Assembler wurde in "0en und 1en programmiert"...

    Oder in Hardware gegossen.



  • Schleifen gibts in Maschinensprache also gar nicht. Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin. Wird Zeit dass man das irgendwie in Hardware hinbekommt.





  • blurry333 schrieb:

    Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin.

    Genau, der Assembler erweitert das Programm, während es läuft. Deshalb brauchen Rechner heutzutage auch viel mehr Speicher als früher.

    Wird Zeit dass man das irgendwie in Hardware hinbekommt.

    Schaffst du schon.



  • blurry333 schrieb:

    Wenn ich 1000 mal eine Schleife durchlaufe, dann schreibt der Assembler 1000 mal das gleiche hin.

    du kannst langlaufen wolang willst du, dadurch schreibt der assamblaer garnix.
    😃 scnr

    wenn du aber fragst wie das mit schleifen geht, da wird nix 1000 mal geschrieben, dafür gibt den jump befehl, da wird 1000 mal gesprungen!



  • wir reden ja hier von Maschinensprache. Und da gibt es keine Schleifen !!



  • blurry333 schrieb:

    früher wurde ja noch mit 0ern und 1ern programmiert. Heute verwendet man z.B. Assembler.

    Ich verwende hauptsächlich 1er und 2er.



  • blurry333 schrieb:

    wir reden ja hier von Maschinensprache. Und da gibt es keine Schleifen !!

    Mag sein, dass es in der Maschinensprache keine Schleifen gibt, aber in 0en und 1en gibts die natürlich. Aus C++

    while (true) {}
    

    wird in 0enund1en-ig bspw.:

    011101110110100001101001011011000110010100100000001010000111010001110010011101010110010100101001001000000111101101111101
    

    .
    Ist aber nicht zu verwechseln mit

    while(true){ }
    

    ,das ist:

    0111011101101000011010010110110001100101001010000111010001110010011101010110010100101001011110110010000001111101
    

    Deshalb: Leerzeichen sind wichtig!



  • Hat blurry333 nicht hier neulich behauptet, dass er Informatik studiert und im Master Studiengang ist?

    @ blurry333

    Alles was du wissen willst, findest du auf der WP unter Opcode.


Anmelden zum Antworten