8087 Emulation on 8086 Systems
ingve
65 points
30 comments
April 24, 2026
Related Discussions
Found 5 related stories in 52.5ms across 5,498 title embeddings via pgvector HNSW
- Show HN: M68k assembly emulator that runs in the browser aldino97 · 13 pts · March 17, 2026 · 51% similar
- I wrote a CHIP-8 emulator in my own programming language pizza_man · 61 pts · April 19, 2026 · 47% similar
- DeiMOS – A Superoptimizer for the MOS 6502 Aransentin · 76 pts · April 07, 2026 · 46% similar
- Big-Endian Testing with QEMU jandeboevrie · 85 pts · April 03, 2026 · 44% similar
- Never Bet Against x86 raphinou · 65 pts · March 06, 2026 · 44% 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.