8087 Emulation on 8086 Systems
ingve
65 points
30 comments
April 24, 2026
Related Discussions
Found 5 related stories in 99.2ms across 10,324 title embeddings via pgvector HNSW
- Microcode inside the Intel 8087 floating-point chip: register exchange pwg · 102 pts · May 30, 2026 · 57% similar
- 80386 microcode disassembled nand2mario · 237 pts · May 23, 2026 · 56% similar
- z386: An Open-Source 80386 Built Around Original Microcode wicket · 125 pts · May 23, 2026 · 52% similar
- Show HN: M68k assembly emulator that runs in the browser aldino97 · 13 pts · March 17, 2026 · 51% similar
- PC Engine CPU ibobev · 137 pts · May 08, 2026 · 49% similar
Discussion Highlights (6 comments)
xattt
The article states that the 8087 was an expensive add-on. Was this price point a deliberate market differentiator, or was there some special sauce within FPU that was otherwise difficult to attain?
bombcar
The interesting thing about the 8087 is that the co-processor interface was kind of generic. In theory you could have had things beyond just an FPU, but I don't know if much was ever done using it.
wglb
While I was at Mark Williams back in the day, the engineers wrote 8087 emulation floating point for the Mark Williams 8086 compiler. This involved some quality time with the Volume 2 of Knuth in the log division section.
dehrmann
Fun trivia: Intel's PCI vendor ID is 8086.
anthk
https://github.com/howerj/muxleq (subleq and muxleq). Look at the EForth code on how a small FP it's implemented. Also, learn about Forth, it's dumb easy to understand.
watersb
> Because the 8086 had no facility for emulating an FPU (unlike the 80286 and later processors), the emulation mechanism was somewhat complex and required tight cooperation of assemblers/compilers, linkers, and run-time libraries. The article goes into some detail on the extra effort required to implement FPU hardware emulation on a platform that did not especially support it. Modern implementation of FPU emulation might be more straightforward. I haven't worked with FPU emulation on microcontrollers, which is probably the most common use case these days.