65xx – Hexadezimalumrechnung
Hier ein paar kleine Routinen, um Zahlen hexadezimal auszugeben. Die Ausgabeprozedur ist nicht Bestandteil der Routine. Das ist auf jedem Rechner verschieden umzusetzen.
WeiterlesenElektronikprojekte als Hobby
Hier ein paar kleine Routinen, um Zahlen hexadezimal auszugeben. Die Ausgabeprozedur ist nicht Bestandteil der Routine. Das ist auf jedem Rechner verschieden umzusetzen.
WeiterlesenEine echte Zufallszahl mit einem Computer zu erzeugen ist oft schwierig. Allerdings reichen für viele Anwendungen auch Pseudo-Zufallszahlen. Das nachfolgende kleine Programm erzeugt eine solche Pseudo-Zufallszahl.
WeiterlesenDer folgende Code rechnet eine bis zu 16 Bit große Zahl in eine Binärzahl um und gibt diese aus. Die Ausgaberoutine ist nicht Teil des Codeschnipsels.
WeiterlesenDie hier vorgestellte kleine Routine errechnet die Integer-Quadratwurzel aus einer im Register HL gegebenen 16-Bit-Zahl. Das Ergebnis wird im Register DE gespeichert. Und hier noch eine Variante, bei der das Ergebnis im Register A landet. Das Register HL nimmt wieder die Zahl auf, aus der die Quadratwurzel ermittelt werden soll.
WeiterlesenHier eine einfache Multiplikation mit 10. In diesem Schnipsel auf 8 Bit beschränkt: Der Ausgangswert befindet sich im Register A Diese kleine Stückchen Code berücksichtig keinen Überlauf. Alle Ergebnisse größer 255 werden somit nicht berücksichtigt bzw. erfordern weiteren Code.
WeiterlesenInspiriert durch die „8 bit CPU from scratch“ von Ben Eater hatte ich den Wunsch, ähnliches zu bauen. Dabei wollte ich das Projekt nicht auf dem Breadboard verwirklichen sondern lieber eine schöne Platine zum löten erstellen. Außerdem sollte der Adressbus 12 Bit breit sein und ein Speicher (ROM oder RAM oder beides) von maximal 4 Kilobyte zur Verfügung stehen. Außerdem wollte ich eine 8 Bit ALU implementieren. Alle Funktionen sollten auch mit LED’s sichtbar gemacht werden. Bereits am 18.10.2020 begann
WeiterlesenEin Byte im Register A schnell „links machen“, also umdrehen, geht so:
WeiterlesenUmrechnung von Dezimal in Hexadezimal von 4 Bit (Nibble) bis 32 Bit (DWord). Die Routine sieht eine Ausgabe auf einem Ausgabekanal vor. Die Ausgabe ist nicht Teil der Routine
WeiterlesenDer Z80 hat leider auch keinen Befehl für eine Division. Zwar kann man mit Bit-Shifting einiges bewirken, die Möglichkeiten sind aber begrenzt. Also muss eine kleine Routine her. Hier eine 8 Bit-Division der Form BC=HL/E (Also Register HL durch Register E, Ergebnis in Register BC). Die Routine bedient sich der einfach Subtraktion.
WeiterlesenDer Z80 hat selbst keine direkten Maschinenbefehle für Multiplikationen an Bord…. Leider! Aber OK, aus der Schule wissen wir, dass eine Multiplikation auch problemlos durch Additionen dargestellt werden kann. Im Folgenden nun eine kleine Routine für 8 Bit-Multiplikationen mit max 16 Bit Ergebnis Folgende Register werden genutzt: HL = ErgebnisD = MultiplikatorE = Multiplikand
Weiterlesen