8-Bit-Mikroprozessor
Arbeiten mit Registern
Im Register A befindet sich eine Hexadezimalzahl, welche durch das Anwenden logischer Operationen in die vorgegebene Zahl umzuwandeln ist.
Stellen Sie die gegebenen Zahlen als Dualzahl dar und notieren Sie die Assemblerbefehle.
- 47H ⇒ B1H 0100 1110 ⇒ 1011 0001
Registerinhalt bitweise negieren: CMA - 61H ⇒ 69H 0110 0001 ⇒ 0110 1001
Bit 3 mittels ODER-Verknüpfung setzen: ORI 08H - ACH ⇒ 84H 1010 1100 ⇒ 1000 0100
Bit 3 und Bit 5 mittels UND-Verknüpfung auf Null setzen: ANI 0D7H
Hinweis: Bei Hexadezimalzahlen, die mit einem Buchstaben beginnen, muss eine Null vorangestellt werden. - 32H ⇒ 64H 0011 0010 ⇒ 0110 0100
alle Bits eine Stelle nach links schieben: RLC
Hinweis: In Programmen muss das Carry-Bit beachtet werden, um Rechenfehler zu erkennen.
Eingabe und Ausgabe
Das System besitzt je ein 8-Bit-Eingabeport (00C8H) bzw. Ausgabeport (00C9H).
Es gilt: Bit 0 entspricht der Stelle 20
Notieren Sie jeweils die
Assemblerbefehlsfolge.
- Am Bit 5 des Eingabeports ist ein Schalter (Schließer) angeschlossen.
Es soll geprüft werden, ob der Schalter geschlossen ist.
IN 0C8H ;Port einlesen, Wert in Register A
ANI 20H ;alle Bits außer Bit 5 auf Null setzen
CPI 20H ;Inhalt von Register A mit 20H vergleichen (Schalter = 1?) - Am Ausgabeport ist an den Bits 0, 2, 4 und 6 jeweils eine Leuchtdiode angeschlossen.
Alle sollen leuchten.
MVI A,55H ;die Dualzahl 0101 0101 in das Register A laden
OUT 0C9H ;Register A am Port ausgeben