Hi!
ich lese vorhanden. jetzt frage ich mich, wie haben die es gemacht das dieser Befehl im 8086er SCHON verhanden ist.
Ich glaube, du müsstest uns am besten kurz erklären, wie du dir bisher die Entwicklung der Maschinensprachebefehle einer CPU vorstellst.
Hast du die Vorstellung, dass Befehle mehr oder weniger Zufällig seit dem 8086 existierten und erst heute entdeckt und genutzt werden?
Ganz konkret zu SHL/SHR (Shift Left und Shift Right). Das sind mit die grundlegensten Befehle neben der einfachen Addition oder Subtraktion, die eine CPU ausführen kann. Die kennt jede CPU und auch bei mir waren es mit die ersten CPU-Kommandos die ich für den MOS6510 gelernt habe - das war die CPU im Commodore 64.
Alle Bits nach Links oder Rechts zu schieben bedeutet einen Zahlenwert durch 2 zu teilen oder mal 2 zu nehmen. Die CPU des C64 kannte keine Befehle für Multiplikation und Division von beliebigen Zahlen, daher war mit die erste Übung beim Lernen, eine solche Routine zu schreiben und die verwendete diese Kommandos.
Eine CPU ist dafür gedacht einen Code auszuführen. Dieser Code wird als "Maschinensprache" bezeichnet. Technisch sind das mindestens eine handvoll Befehle zum Laden und Schreibern von Werten in den Speichern. Dann benötigt jede CPU Befehle um geladene Daten zu modifizieren (Addieren, Subtrahieren, Shift-Left/Right usw.).
Das "Aussehen" der Codes wird festgelegt und dann in der "Verdrahtung" der CPU fest hinterlegt (man definiert also die Syntax des Maschinencodes vorab).
Ein wichtiges Thema bei der CPU Entwicklung ist Kompatibilität: man will mit der neuen CPU Maschinencode ausführen, der für eine ältere CPU geschrieben wurde. Wie macht man das? Ganz einfach: ich nehme die Definition des Maschinencodes der alten CPU und baue darauf den Maschinencode der neuen CPU auf. Und schon ist die neue CPU abwärtskompatibel.
War es das, was du wissen wolltest?
Bis dann
Andreas