← Back to context

Comment by voidUpdate

4 days ago

So is this x86 compatible, or 8086 compatible? Because those are different things

8086 is x86

https://en.wikipedia.org/wiki/X86

  • The instruction matrix they provide only includes 8086 instructions, not 186, 286 etc, which are all x86, hence the x at the start. From that wikipedia article, "The term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186, 80286, 80386 and 80486. Colloquially, their names were "186", "286", "386" and "486"."

    • That wikipedia article lists the 8086 in its "Chronology of x86 processors" section as an x86-16 CPU.

  • The point is that the 8086 doesn't have anything close to the instruction set now referred to as x86_64 or even x86_32. Asking which it is is asking which instruction set it implements. The answer is that it implements the 8086 instruction set.

    Saying this is an "x86 CPU emulator" is misleading, even if technically an 8086 is an example of the x86 family. To avoid the misleading ambiguity you'd have to say something like "emulates a member of the x86 family", at which point you may as well just say "8086 emulator".

    • I think x86 is still good because it's easily understandable. If I say it's an 8086 emulator, people who aren't familiar with the 8086 aren't gonna go "oh so like an older version of the same x86 on my computer". And "Show HN: CSS program that emulates a CPU that's a member of the x86 family" doesn't roll off the tongue.

      I don't think calling it x86 is misleading, and this is coming from the perspective of someone who dabbles in rev and pwn of x86.

There's a list of the supported opcodes on the page if you scroll down.

If it was 8086 they would have written 8086

  • They write both. They write x86 repeatedly in the article and title, then show an instruction matrix that doesn't include, for example, the 468 CMPXCHG instructions or the crypto extensions PCLMULHQHQDQ instruction. Best I can guess, they mean 8086, which they think is equivalent to x86

    • Why is the 8086 not equivalent to x86? PCLMULHQHQDQ is from the CLMUL extension, which only began appearing in CPUs in the early 2010s - are CPUs from before then not x86?

      2 replies →

  • > What you're seeing above is a C program that was compiled using GCC into native 8086 machine code being executed fully within CSS.

    They did write 8086 in the text, but x86 in the title.