Der Vergleicher
Es kommt oft vor, daß man in seinen Programmen Zahlen vergleichen muß, daher dieses Modul. Das Modul soll feststellen können, welcher der beiden Operanden die größere Zahl speichert. Zunächst einmal die Schaltung nur für positive Zahlen. Was macht es aus, daß eine Binärzahl größer ist als eine andere Binärzahl? Genau die Binärzahl ist größer, in der von links nach rechts gesehen das erste in beiden Zahlen unterschiedliche Bit den Wert 1 hat.
Mein Schaltungsentwurf sieht wie folgt aus:
Diese Schaltung funktioniert, wenn beide Zahlen positiv sind, aber auch, wenn beide Zahlen negativ sind. Man muß also eine Zusatzschaltung machen, welche bei unterschiedlichen Vorzeichen der zu vergleichenden Zahlen den bisherigen Vergleicher „übergeht“. Hier das Schaltbild:
Relais 1 und 2 sind als Treiberstufen. Relais 5 und 6 schalten, falls beide Vorzeichen gleich sind das Ergebnis des bisherigen Vergleichers durch. Sind die Vorzeichen der beiden Zahlen unterschiedlich, so ist Zahl 1 nur dann größer als Zahl 2, wenn Zahl 2 negativ und Zahl 2 positiv ist. Diese Bedingung ist in Relais 3 und 4 realisiert.
Der Ausgang für Zahl 1 < als Zahl 2 lässt sich sehr einfach machen,
denn Zahl 1 < Zahl 2 wenn weder Zahl 1 > als Zahl 2 noch
Zahl 1 = Zahl 2. Die Schaltung ist links zu sehen.
Der Vergleicher gibt also nun mehrere Leitungen aus, die nur dann 5 Volt führen, wenn die entsprechende Bedingung zutrifft. Dies sind nun 7 Leitungen für folgende Bedingungen:
- Operand 1 > Operand 2
- Operand 1 < Operand 2
- Operand 1 = Operand 2
- Überlauf
- Opernad 1 ist negativ
- Operand 2 ist negativ
- Ergebnis ist negativ
Diese Leitungen werden für Multiplikation und Division sowie für bedingte Sprunganweisungen verwendet werden können.