K1810WM87
The K1810WM87 ( Russian К1810ВМ87 ) is a Soviet replica of the Intel 8087 numerical coprocessor . It is part of the K1810 system and was used, for example, in the ESER-PC EC 1834 .
Data types
The K1810WM87 supports a total of 7 different data types:
- 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
The Temporary Real format is always used in the registers. All other formats are only used for load and store commands.
register
The K1810WM87 has the following registers:
- 8 floating point registers, organized as a stack , each 80 bits wide
- 1 16-bit control word
- 1 16-bit status word
- 1 16-bit TAG word
- 1 instruction pointer
- 1 operand pointer
Stack registers are specified in the form ST (i), i = 0… 7. The index i points to the i-th register after the top of the stack . The registers ST and ST (0) are the same.
programming
Memory data, stack registers, status and control registers can be used as operands . The host processor ( K1810WM86 ) is responsible for addressing the memory . This means that all types of addressing of the CPU can be used.
In addition to normalized numbers (Normals), there are the following special values:
- Zero (0)
- Denormals
- Abnormal Numbers (Unnormal)
- Infinity
- Indefinite code
- NaN (Not-A-Number)
The WAIT command can be used for synchronization between the host and coprocessor.
initialization
The K1810WM87 can be initialized either by a RESET signal or by an external program. After the initialization, the K1810WM87 has the following states:
- Control word: The projective model, rounding to the next value, 64 significant digits, interrupts prohibited and exceptions masked are selected in the control word.
- Status word: In the control word the BUSY flag is set to 0, the result code to undefined, the stack pointer to 0 (stack empty), the interrupt flag to 0 (no interrupt) and the exception flag to 0 (no exceptions).
- TAG word: Each of the tags is set to the value 3 (register free).
Instruction set
The instruction set can be divided as follows:
- Data transfer commands
- Arithmetic instructions
- Comparison commands
- Transcendent Orders
- Commands for loading constants
- Processor control commands
See also
literature
Jochen Bonitz: The 16-bit microprocessor of the ESER-PC. VEB Verlag Technik Berlin, 1989, ISBN 3-341-00704-0 .