Der K1810WM87 (russisch К1810ВМ87) ist ein sowjetischer Nachbau des numerischen Koprozessors Intel 8087. Er ist Teil des K1810-Systems und wurde beispielsweise im ESER-PC EC 1834 verwendet.

K1810WM86

Datentypen

Bearbeiten

Der K1810WM87 unterstützt insgesamt 7 verschiedene Datentypen:

  • 16-Bit-Short Integer
  • 32-Bit-Word-Integer
  • 64-Bit-Long-Integer
  • 80-Bit-BCD
  • 32-Bit-Short Real
  • 64-Bit-Long-Real
  • 80-Bit-Temporary-Real

In den Registern wird immer das Temporary-Real-Format verwendet. Alle anderen Formate werden nur bei Load- und Store-Befehlen verwendet.

Register

Bearbeiten

Der K1810WM87 besitzt folgende Register:

Stapelregister werden in der Form ST(i), i = 0…7, angegeben. Der Index i zeigt auf das i-te Register nach der Stapelspitze. Die Register ST und ST(0) sind die gleichen.

Programmierung

Bearbeiten

Als Operanden können Speicherdaten, Stapelregister, Status- und Steuerregister verwendet. Für die Adressierung des Speichers ist der Host-Prozessor (K1810WM86) zuständig. Somit können alle Adressierungsarten der CPU verwendet werden.

Neben normierten Zahlen (Normals) gibt es folgende, spezielle, Werte:

  • Null (0)
  • Denormierte Zahlen (Denormals)
  • Unnormale Zahlen (Unnormals)
  • Unendlich (Infinity)
  • Indefinit-Kode
  • NaN (Not-A-Number)

Für die Synchronisierung zwischen Host- und Koprozessor kann der WAIT-Befehl verwendet werden.

Initialisierung

Bearbeiten

Der K1810WM87 kann entweder durch ein RESET-Signal oder durch ein externes Programm initialisiert werden. Nach der Initialisierung besitzt der K1810WM87 folgenden Zustände:

  • Steuerwort: Im Steuerwort wird das projektive Modell, Runden zum nächsten Wert, 64 signifikante Stellen, Interrupts verboten und Exceptions maskiert ausgewählt.
  • Statuswort: Im Steuerwort wird das BUSY-Flag auf 0, der Ergebniskode auf undefiniert, der Stapelzeiger auf 0 (Stapel leer), das Interruptflag auf 0 (kein Interrupt) und das Exception-Flag auf 0 (keine Exceptions) gesetzt.
  • TAG-Wort: Jedes der Tags wird auf den Wert 3 (Register frei) gestellt.

Befehlssatz

Bearbeiten

Der Befehlssatz lässt sich folgendermaßen unterteilen:

  • Datentransferbefehle
  • Arithmetikbefehle
  • Vergleichsbefehle
  • Transzendente Befehle
  • Befehle zum Laden von Konstanten
  • Befehle zur Prozessorsteuerung

Siehe auch

Bearbeiten

Literatur

Bearbeiten

Jochen Bonitz: Der 16-Bit-Mikroprozessor des ESER-PC. VEB Verlag Technik Berlin, 1989, ISBN 3-341-00704-0.