Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:techinf:assembler:logik:start [20.09.2021 21:16] – [Die AND-Instruktion] sbel | faecher:informatik:oberstufe:techinf:assembler:logik:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Logik, Sprünge und Unterprogramme ====== | ||
- | |||
- | Der Befehlssatz des Prozessors enthält die Befehle AND, OR, XOR, TEST und NOT der booleschen Logik. D | ||
- | |||
- | Das Format für diese Befehle ist folgendes: | ||
- | ^ Anweisung ^ Format im Programmcode ^ | ||
- | |AND |AND operand1, operand2 | | ||
- | |OR |OR operand1, operand2 | | ||
- | |XOR |XOR operand1, operand2 | | ||
- | |TEST |TEST operand1, operand2 | | ||
- | |NOT | NOT operand1 | ||
- | |||
- | Der erste Operand kann entweder in einem Register oder im Speicher sein. Der zweite Operand kann entweder in einem Register/ | ||
- | |||
- | Die Operatoren werden bitweise ausgeführt je nach Ergebis werden die Flags CF, OF, PF, SF oder ZF gesetzt. | ||
- | |||
- | ===== Die AND-Instruktion ===== | ||
- | |||
- | Die AND-Anweisung vergleicht zwei Operanden indem sie eine bitweise AND-Operation durchführt. Die bitweise UND-Verknüpfung ergibt 1, wenn die übereinstimmenden Bits beider Operanden 1 sind, andernfalls ergibt sie 0. | ||
- | |||
- | Das Ergebnis der Operation wird im ersten Operand gespeichert. | ||
- | |||
- | Beispiel: | ||
- | |||
- | < | ||
- | | ||
- | | ||
- | ---------------------------------- | ||
- | AND -> Operand1: | ||
- | </ | ||
- | |||
- | Die AND-Verknüpfung kann verwendet werden, um ein oder mehrere Bits zu löschen. Beispiel: Das BL-Register enthält 0011 1010. Wenn du die höherwertigen Bits auf Null setzen willst, verknüpfe BL mit 0FH: | ||
- | |||
- | <code asm> | ||
- | mov BL, 00111010B; Schreibe 00111010 ins Register BL | ||
- | and BL, 0FH ; Jetzt steht in BL das Bitmuster 00001010 | ||
- | </ | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Analysiere den folgenden Code. Welchen Inhalt hat das Register BL nach der AND Operation? Welche Ausgabe erzeugt das Programm? | ||
- | |||
- | <code asm> | ||
- | | ||
- | tabelle TIMES 10 DW 97 | ||
- | |||
- | section .text | ||
- | | ||
- | _start: | ||
- | |||
- | |||
- | MOV BL, 01111010B ; | ||
- | AND BL, 0F0H ; | ||
- | |||
- | MOV [tabelle], BL | ||
- | | ||
- | ; | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | | ||
- | | ||
- | |||
- | </ | ||
- | |||
- | |||
- | An folgendem Beispiel kann man sich einige neue Möglöichkeiten erschließen: |