Schreiben Sie maximal zwei Befehle zu löschen, Satz und ergänzen einige Bits in dem AL-Register

StackOverflow https://stackoverflow.com/questions/2715754

  •  01-10-2019
  •  | 
  •  

Frage

Sie sind verpflichtet, bei der Montage maximal zwei Befehle schreiben Folgendes zu tun:

  1. Clear Bits 0 und 7 des Registers AL, das heißt machen sie 0
  2. Set Bits 3 und 4 des Registers AL, das heißt, sie machen 1.
  3. Complement-Bits 1 und 5 des Registers AL.
  4. Halten Sie alle anderen Bits in dem Register AL wie ohne ihre Werte zu ändern.
War es hilfreich?

Lösung

Der Trick hier ist folgendes zu tun:

  1. verwenden eine oder eine Anweisung an set Bits 0, 3, 4 und 7

  2. verwenden, um einen XOR-Befehl an Komplement Bits 0, 1, 5 und 7

Beachten Sie, dass die Bits 0 und 7 erste get set in (1) und dann in gelöscht (2).

Ich werde die tatsächliche asm Anweisungen, die Sie verlassen, da dies Ihre Hausaufgaben ist, nachdem alle.

Andere Tipps

Ein DB-Befehl eine Anordnung von 256 „Ergebnis“ Werten definiert, und einem Bewegungsbefehl ein Element dieses Array in al zu bewegen, als Index für den aktuellen Wert in al.

Wäre es nicht das?

Es könnte sogar argumentieren, dass dies in der Tat auch eine Single-Instruction-Lösung, da die DB nicht wirklich eine Anweisung, die ausgeführt werden zur Laufzeit, vielmehr ist es eine Kompilierung-deklarative.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top