Bitmanipualtionsbefehle + Operationen mit Oktett- / Wort- Folgen

11 November
Termin: 20 November (25 November)

Theorie | Beispiele | Aufgaben


Theoretische Zusammenfassung:

  1. Bitmanipulationsbefehle
  2. Operationen mit Oktett- / Wort- Folgen
  3. Sprungbefehle


Aufgaben:

    1. Seien A und B zwei gegebene Wörter (2 Bytes grosse Variablen).
      Es wird das Wort C folgenderweise erzeugt:
      • Bits 0-2 von C sind gleich wie Bits 7-9 von A
      • Bits 3-6 von C sind gleich wie Bits 9-12 von B
      • Bits 7-15 von C haben den Wert 0
    2. Sei eine Oktett-Folge gegeben. Bilden Sie eine neue Folge von gleicher Größe: es werden alle Elemente der ersten Folge in die zweite kopiert, die entweder mehr 1-er als 0 Bits enthalten, oder ihr Wert im Intervall [1fh,60h] ist. Alle andere Oktette der neuen Folge werden den Wert 0 haben.
    1. Seien A und B zwei gegebene Wörter (2 Bytes grosse Variablen). Es wird das Wort C folgenderweise erzeugt:
      • Bits 0-2 und Bit 10 von C haben den Wert 0
      • Bits 3-6 von C sind gleich wie Bits 5-8 von A
      • Bits 7-9 von C sind gleich wie Bits 0-2 von B
      • Bits 11-15 von C sind gleich wie Bits 5-9 von B
    2. Seien zwei Oktett-Folgen s1 und s2 gegeben. Wenn s2 s1 enthaltet, dann wird die Anfangsposition von s1 in s2 im Variable Erg gespeichert, sonst wird Erg den Wert FFh bekommen.
    1. Die ersten drei Bits des Wortes B sollen mit den letzten drei Bits vom Oktett A ersetzt werden.
    2. Seien zwei Oktett-Folgen gegeben. Man soll eine dritte Folge bilden, die auf jeder Position (bis zur Länge der kürzerer Folge) immer den größeren von den zwei entsprechenden Elementen der gegebenen Folgen enthaltet. Dann, bis zur Länge der längerer Folge wird die neue Folge alternativ mit dem Wert 1 bzw. 0 ergänzt.
    1. Sei A ein gegebenes Wort (2 Bytes grosse Variable). Es soll das Wort B erstellt werden, als Ergebnis der Rotation des Wortes A mit n Positionen nach Rechts (ohne Carry). n istdie Dezimahlzahl, die den 0-3 Bits von A entspricht.
    2. Sei eine Wort-Folge (Wort = 2 Bytes) gegeben. Bilden Sie zwei neue Folgen, s1 und s2 folgenderweise: Für jedes Wort,
      • wenn die Anzahl der 1-er Bits im höcherwertigen Byte größer als die Anzahl der 1-er Bits im niederwertigen Byte ist, dann wird s1 das höcherwertige Byte und s2 das niederwertige Byte des Wortes enthalten.
      • wenn die Anzahl der 1-er Bits is gleich, dann wird s1 die Anzahl des 1-er Bits enthalten und s2 den Wert 0.
      • sonst wird s1 das niederwertige Byte enthalten und s2 das höcherwertige.
    1. Seien A und B zwei gegebene Wörter (2 Bytes grosse Variablen). Es wird das Wort C folgenderweise erstellt:
      • Bits 0-3 von C sind gleich wie Bits 8-11 von A
      • Bits 4-10 von C haben den Wert 0
      • Bits 11-15 von C sind gleich wie Bits 11-15 von B
    2. Seien zwei Oktett-Folgen gegeben. Bilden Sie eine dritte Folge, die für jedes Oktett der zweiten Folge wird seine Position in der erste Folge enthalten, wenn dieses Oktett existiert, und 0 wenn nicht.
Für + Punkt:
Bei der Punkt (a) lesen Sie die gegebene Wörter ein und zeigen Sie die eingelesene Daten und das Ergebnis in Binärform am Bildschirm an so, dass immer 16 Zifern angezeigt sollen, und nach jeder Gruppe von vier Bits ein ' ' Charakter ist.
Z. B.: Falls AX den Wert 3FA0h hat, es soll 0011 1111 1010 0000 angezeigt werden

Beispiele