3 ms·
x86 is an octal machine (1995): https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781f2f3c0353da https://gist.github.com/seanjensengrey/f971c20d05d4d0efc
by davikr 1y ago
x86 is an octal machine (1995): https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781f2f3c0353da https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781...
- peterfirefly 1y agoOriginally, yes. These days, not so much. It's "whatever bit confetti was necessary to squeeze in all the opcode/operand bits".
- userbinator 1y agoBy "these days" you mean "since AMD messed it up".
- peterfirefly 1y agoObviously not. Even if you dislike the REX prefixes of AMD64, you've got to think about the 66/F2/F3 prefixes used for older SIMD instructions. They were introduced by Intel and basically contribute to more opcode bits. There's also the 2E/3E prefixes used for static branch prediction hints in some Pentium 4's (and also in new/upcoming Intel CPUs). VEX is from Intel, EVEX is from Intel, and the upcoming REX2 is also from Intel.
- userbinator 1y agoREX is horrible because they occupy two full rows of what were otherwise very useful instructions (inc/dec), and there were other gaps and less-useful instructions (segment override prefixes? If segmentation doesn't work in AMD64 mode, what's the point?) in the opcode map they could've used instead.
- userbinator 1y agoDiscussed here: https://news.ycombinator.com/item?id=30409100 https://news.ycombinator.com/item?id=30409100 I've memorised most of the 1st-page instructions - in octal - and it's easier than it sounds.